Nginx est le logiciel open source le plus connu qui joue un rôle important dans les serveurs proxy. Lorsqu'il est question de proxy, il faut mentionner les demandes de proxy directes de Nginx. Dans cet article, je vais vous présenter en détail les techniques d'optimisation des requêtes forward proxy de Nginx, dévoilons-en le mystère !
I. Définition de l'en-tête du cache
Lorsque Nginx transmet des requêtes proxy, il est possible d'améliorer l'efficacité de la requête en définissant des en-têtes de cache. Les en-têtes de cache permettent d'éviter la recherche fréquente de données sur le serveur source, ce qui permet d'économiser la bande passante. Nous pouvons ajouter le code suivant dans le fichier de configuration de Nginx :
proxy_cache_valid 200 304 10m ;
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m ;
proxy_cache_key "$host$request_uri" ;
proxy_cache mon_cache ;
Dans le code ci-dessus, proxy_cache_valid est utilisé pour définir la durée de validité du cache, qui est fixée à 10 minutes. proxy_cache_path est utilisé pour spécifier le chemin du cache et les configurations connexes, dans lesquelles levels=1:2 indique la hiérarchie des répertoires des fichiers mis en cache, keys_zone est utilisé pour spécifier le nom et la taille du cache, inactive est utilisé pour indiquer la durée pendant laquelle le fichier du cache sera supprimé s'il n'est pas accédé. La zone keys_zone est utilisée pour spécifier le nom et la taille du cache, et la zone inactive est utilisée pour indiquer la durée pendant laquelle le fichier du cache sera supprimé s'il n'est pas consulté. proxy_cache_key est utilisé pour spécifier le nom de la clé du cache, qui se présente généralement sous la forme "$host$request_uri".
II - Permettre la compression
Nginx supporte le module gzip, qui compresse les données transmises, réduisant ainsi la quantité de données transmises et améliorant l'efficacité de la transmission. Nous pouvons ajouter le code suivant au fichier de configuration de Nginx :
gzip activé ;
gzip_types text/plain application/xml.
gzip_vary on ; gzip_min_length
gzip_vary on ; gzip_min_length 1024 ; gzip_proxied any ; gzip_proxied on
gzip_proxied any ; gzip_comp_level 6 ; gzip_comp_level 6
gzip_comp_level 6 ; gzip_buffers 16
gzip_buffers 16 8k ; gzip_vary on ; gzip_min_length 1024 ; gzip_proxied any ; gzip_comp_level 6 ; gzip_buffers 16 8k ;
Dans le code ci-dessus, gzip on indique que la compression gzip est activée, gzip_types est utilisé pour spécifier le type de fichier que vous souhaitez compresser, gzip_vary indique qu'il informe le navigateur de la prise en charge ou non de la compression gzip par le serveur, gzip_min_length indique qu'il spécifie que la compression n'est effectuée que lorsque la longueur de la réponse est supérieure ou égale à un certain nombre d'octets, gzip_proxied indique si les données compressées dans la requête proxy continuent d'être compressées, gzip_comp_level indique le niveau de compression, et gzip_buffers indique la taille du tampon de compression.
III. utilisation de connexions keepalive
L'utilisation de connexions keepalive dans les demandes de proxy forward de Nginx améliore les performances et réduit le coût de l'établissement et de la fermeture des connexions. La réutilisation de connexions déjà établies permet d'éviter l'établissement et la fermeture fréquents de connexions et d'améliorer l'efficacité de la transmission. Nous pouvons ajouter le code suivant au fichier de configuration de Nginx :
http {
...
keepalive_timeout 65 ;
proxy_http_version 1.1 ; proxy_set_header Connection "" ; proxy_set_header Connection "" ; ...
proxy_set_header Connexion "" ; ...
...
}
Dans le code ci-dessus, keepalive_timeout est utilisé pour définir le délai d'attente pour les connexions keepalive, proxy_http_version indique le serveur dorsal qui prend en charge le protocole HTTP/1.1, proxy_set_header est utilisé pour définir les informations de l'en-tête de la requête, et ici, Connection est défini comme une chaîne vide Ici, Connection est défini comme une chaîne vide, ce qui signifie qu'il n'y a pas de limite au nombre de fois qu'une connexion peut être utilisée.
Dans cet article, nous avons appris des techniques d'optimisation pour les requêtes de proxy direct de Nginx. La mise en place d'en-têtes de cache, l'activation de la compression et l'utilisation de connexions keepalive sont autant de moyens efficaces d'améliorer les performances. J'espère que cet article vous aidera à utiliser les requêtes de proxy direct de Nginx. C'est une bonne idée de le faire en temps voulu !