Nginx est un serveur Web haute performance qui peut être utilisé comme serveur proxy inversé, offrant un équilibre entre charge et haute disponibilité. En distribuant des demandes de clients à plusieurs serveurs backend, Nginx peut améliorer la vitesse de réponse et les performances globales des services Web. Ses fonctions principales incluent le transfert de demande, l'équilibrage de charge et le traitement de l'en-tête HTTP.
Dans les applications Web à haut trafic, un seul serveur ne peut pas héberger trop de demandes, il doit donc être distribué à plusieurs serveurs backend via l'équilibrage de charge. De plus, la technologie proxy inverse peut aider les clients à communiquer avec les serveurs les plus proches, à réduire la latence et à améliorer la vitesse de réponse. En configurant Nginx en tant que serveur proxy, non seulement l'équilibrage de charge peut être réalisé, mais aussi améliorer efficacement la disponibilité des services et la vitesse de réponse.
Dans le système Ubuntu, Nginx peut être installé via APT et utiliser la commande suivante:
Mise à jour Sudo apt-get sudo apt-get install nginx
Lors de la configuration d'un serveur proxy Nginx, vous devez d'abord modifier le fichier de configuration Nginx. Le chemin du fichier est généralement dans le répertoire / etc / nginx /.
Avant de modifier la configuration, il est recommandé de sauvegarder le fichier de configuration d'origine. Utilisez la commande suivante pour sauvegarder le fichier d'origine /etc/nginx/nginx.conf:
CD / etc / nginx sudo cp nginx.conf nginx.conf.bak
Le fichier de configuration de Nginx implique principalement deux parties: définition en amont et paramètre proxy_pass.
Définissez les adresses IP et les ports de plusieurs serveurs backend dans le segment HTTP. L'exemple suivant configure 3 serveurs backend:
http { Backend en amont { serveur 192.168.1.101:80 poids = 1; serveur 192.168.1.102:80 poids = 1; serveur 192.168.1.103:80 poids = 1; } }
Configurez Proxy_Pass dans le segment du serveur et transférez la demande au serveur backend défini ci-dessus:
serveur { Écoutez 80; server_name example.com; emplacement / { proxy_pass http: // backend; } }
Une fois la configuration terminée, vous devez redémarrer le service Nginx pour rendre la nouvelle configuration à prendre effet:
service sudo nginx redémarrer
Après avoir terminé la configuration de base, afin d'améliorer encore les performances, certaines optimisations peuvent être faites à Nginx.
En activant la mise en cache, Nginx peut stocker des fichiers statiques en mémoire, en réduisant le temps de réponse des demandes. Vous pouvez ajouter le code suivant au fichier de configuration pour activer le cache:
http { proxy_cache_path / var / cache / nginx niveaux = 1: 2 keys_zone = my_cache: 10m inactive = 60m; proxy_cache_key "$ schéma $ request_method $ host $ request_uri"; proxy_cache_valid 200 304 12h; proxy_cache_valid 404 1m; }
L'activation de la compression GZIP peut réduire la taille de la transmission des données et améliorer la vitesse de réponse des services Web. Ajoutez simplement le code suivant au fichier de configuration:
http { gzip sur; gzip_min_length 1000; GZIP_TYPES Text / Text brut / CSS Application / JSON Application / JavaScript Text / XML Application / XML + XML / RSS Text / JavaScript; }
L'ajustement du nombre de processus de travail de Nginx en fonction du nombre de cœurs CPU du serveur peut améliorer les performances. L'exemple suivant montre comment définir automatiquement le nombre de processus de travail en fonction du nombre de cœurs CPU:
wearch_prosses auto; wearch_cpu_affinity auto; wearch_rlimit_nofile 8192;
La configuration d'un serveur proxy NGINX peut considérablement améliorer la vitesse de réponse et les performances des services Web. En configurant rationnellement l'équilibrage de la charge, la proxyation inverse et l'activation des technologies d'optimisation telles que la mise en cache et la compression GZIP, des services Web plus efficaces et plus stables peuvent être obtenus. Pendant le processus de configuration, assurez-vous de faire attention aux ajustements et optimisations correspondants en fonction de l'environnement matériel du serveur.