Maison  >  Article  >  Opération et maintenance  >  Optimisation des performances et paramètres de sécurité de Nginx

Optimisation des performances et paramètres de sécurité de Nginx

WBOY
WBOYoriginal
2023-06-10 09:18:084255parcourir

Nginx est un serveur Web, un serveur proxy et un équilibreur de charge couramment utilisés avec des performances, une sécurité et une fiabilité supérieures, et peut être utilisé pour des applications Web à forte charge. Dans cet article, nous explorerons l'optimisation des performances et les paramètres de sécurité de Nginx.

1. Optimisation des performances

  1. Ajustez le paramètre worker_processes

worker_processes est un paramètre important de Nginx. Il spécifie le nombre de processus de travail pouvant être utilisés. Cette valeur doit être ajustée en fonction de facteurs tels que le matériel du serveur, la bande passante du réseau, le type de charge, etc. En général, les paramètres peuvent être définis en fonction du nombre de cœurs de processeur ou des capacités de traitement du serveur. Si le processeur du serveur possède plusieurs cœurs, la valeur de worker_processes peut être définie sur 2 ou 3 fois le nombre de cœurs.

Par exemple, si le serveur dispose de 8 cœurs de processeur, vous pouvez définir worker_processes sur 16 ou 24.

  1. Ajuster les paramètres worker_connections

worker_connections est un autre paramètre important de Nginx. Il spécifie le nombre de connexions simultanées qu'un seul processus de travail peut gérer. Cette valeur doit également être ajustée en fonction de facteurs tels que le matériel du serveur, la bande passante du réseau, le type de charge, etc. En général, les paramètres peuvent être définis en fonction de la taille de la mémoire du serveur. Si la mémoire du serveur est suffisamment grande, worker_connections peut être défini sur une valeur très élevée pour améliorer les capacités de traitement simultané de Nginx.

Par exemple, si la taille de la mémoire du serveur est de 16 Go, vous pouvez définir worker_connections sur 16 384 ou 32 768.

  1. Activer le cache

Nginx peut réduire les requêtes adressées au serveur backend en activant la mise en cache. L'activation de la mise en cache peut améliorer considérablement la vitesse de réponse du site Web et les capacités de traitement simultané. Par exemple, si le contenu d'une page de votre site ne change pas pendant un certain temps, la réponse pour cette page peut être mise en cache afin que la prochaine fois que vous la demanderez, la réponse puisse être obtenue directement à partir du cache.

Activer la mise en cache peut être réalisé des deux manières suivantes :

① Basé sur le module proxy_cache : le cache peut être stocké sur le disque dur local ou dans un cache distribué.

② Basé sur le cache FastCGI : il faut principalement utiliser les instructions fastcgi_cache et fastcgi_cache_path.

  1. Compresser les données de réponse

Nginx prend en charge la compression du contenu de la réponse pour réduire l'utilisation de la bande passante du réseau et améliorer la vitesse de réponse du site Web. L'activation de la compression gzip peut réduire considérablement la taille du contenu de la réponse, augmentant ainsi la vitesse de chargement de votre site Web.

L'activation de la compression gzip peut être obtenue des deux manières suivantes :

① Basé sur le module gzip : la compression gzip peut être activée en définissant la directive gzip on dans le fichier nginx.conf.

② Basé sur des modules tiers : tels que le module ngx_brotli, le module ngx_deflate, etc.

  1. Servir des fichiers statiques

Nginx peut être utilisé comme serveur de fichiers statiques et peut fournir une réponse rapide et des capacités de traitement hautement simultanées pour les fichiers statiques. Si le site Web propose principalement des téléchargements de fichiers statiques ou des services d'accélération CDN, vous pouvez spécifiquement activer une instance Nginx pour gérer les demandes de fichiers statiques et une autre instance Nginx pour gérer les demandes de pages dynamiques.

  1. Utilisation du protocole HTTP/2

HTTP/2 est la dernière version du protocole HTTP, qui offre un transfert de données plus efficace et des vitesses de chargement de pages Web plus rapides. L'activation de HTTP/2 peut être réalisée des deux manières suivantes :

① Basé sur SSL/TLS : Le protocole HTTPS doit être utilisé et un certificat SSL/TLS valide doit être installé.

② Module Nginx HTTP/2 : Vous pouvez activer le protocole HTTP/2 en installant le module Nginx HTTP/2.

2. Paramètres de sécurité

  1. Prévenir les attaques DDoS

L'attaque DDoS est une méthode d'attaque réseau courante, qui peut provoquer un arrêt de service, une saturation de la bande passante et d'autres problèmes. Nginx peut empêcher les attaques DDoS des manières suivantes :

① Augmentez le paramètre max_connections : vous pouvez limiter le nombre maximum de connexions pour une seule adresse IP.

② Installez des modules d'extension : tels que ngx_http_limit_conn_module et ngx_http_limit_req_module, qui peuvent empêcher les attaques DDoS en limitant le nombre de connexions et le taux de requêtes.

③ Utiliser un fournisseur CDN : L'utilisation d'un service CDN peut réduire la charge sur le site d'origine en mettant en cache le contenu statique sur les nœuds périphériques du CDN, améliorant ainsi la capacité à résister aux attaques DDoS.

  1. Prévenir l'injection SQL

L'injection SQL est une méthode d'attaque d'application Web courante, qui peut obtenir des informations sensibles ou contrôler la base de données en injectant du code SQL malveillant dans l'application Web. Nginx peut empêcher l'injection SQL des manières suivantes :

① Utilisez un pare-feu d'application Web : vous pouvez vérifier et filtrer les données d'entrée en installant un pare-feu d'application Web.

② Vérifiez les fichiers téléchargés : vous pouvez utiliser le module ngx_http_upload_module de Nginx pour vérifier les fichiers téléchargés.

③ Utilisez des requêtes SQL sécurisées : les attaques par injection SQL peuvent être évitées en utilisant des requêtes paramétrées, des variables de liaison, un contrôle d'autorisation, etc.

  1. Prévenir les attaques XSS

L'attaque XSS est une méthode d'attaque d'application Web courante. Elle peut obtenir des informations sur les utilisateurs, contrôler les navigateurs des utilisateurs ou attaquer d'autres utilisateurs en insérant des scripts malveillants dans des pages Web. Nginx peut empêcher les attaques XSS des manières suivantes :

① Inspection et filtrage des données entrantes : les scripts malveillants peuvent être inspectés et filtrés à l'aide d'un pare-feu d'application Web.

② Utilisez des méthodes d'encodage sécurisées : vous pouvez utiliser l'échappement HTML ou l'encodage JavaScript pour éviter l'exécution de scripts malveillants.

En bref, Nginx est un serveur Web efficace et sécurisé. Il peut améliorer les performances en ajustant les paramètres de configuration, en activant la mise en cache et la compression, en servant des fichiers statiques, etc., et peut empêcher les attaques DDoS, l'injection SQL et les attaques XSS pour garantir le fonctionnement. sécurité du site Internet. Par conséquent, lors de la création d’une application Web, il est recommandé de donner la priorité à l’utilisation de Nginx comme serveur Web et équilibreur de charge.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn