Maison  >  Article  >  Opération et maintenance  >  Comment utiliser Nginx pour la compression et la décompression des requêtes HTTP

Comment utiliser Nginx pour la compression et la décompression des requêtes HTTP

WBOY
WBOYoriginal
2023-08-02 10:09:181337parcourir

Comment utiliser Nginx pour compresser et décompresser les requêtes HTTP

Nginx est un serveur Web hautes performances et un serveur proxy inverse puissant et flexible. Lors du traitement des requêtes HTTP, vous pouvez utiliser les modules gzip et gunzip fournis par Nginx pour compresser et décompresser les requêtes afin de réduire la quantité de transmission de données et d'améliorer la vitesse de réponse aux requêtes. Cet article présentera les étapes spécifiques d'utilisation de Nginx pour compresser et décompresser les requêtes HTTP, et fournira des exemples de code correspondants.

  1. Configuration du module gzip

Vous devez d'abord activer le module gzip dans le fichier de configuration Nginx. Ouvrez votre fichier de configuration Nginx (généralement situé dans /etc/nginx/nginx.conf ou /usr/local/nginx/conf/nginx.conf) et recherchez le bloc http , Ajoutez la configuration suivante : /etc/nginx/nginx.conf/usr/local/nginx/conf/nginx.conf),找到http块,添加以下配置:

http {
  gzip on;
  gzip_types text/plain text/css application/javascript;
  gzip_min_length 1024;
  gzip_comp_level 1;
}

上述配置的含义如下:

  • gzip on; 表示启用gzip模块。
  • gzip_types 表示需要压缩的文件类型。这里我们选择了文本文件、CSS文件和JavaScript文件。你可以根据自己的需求进行配置。
  • gzip_min_length 表示只有文件长度超过这个值的文件才会进行压缩。
  • gzip_comp_level 表示压缩级别,级别越高,压缩效果越好,但占用的CPU资源也越多。
  1. 配置gunzip模块

如果你需要对接收到的请求进行解压缩,还需要启用gunzip模块。在同一个配置文件中找到http块,添加以下配置:

http {
  gunzip on;
}
  1. 应用配置并重启Nginx

保存Nginx配置文件后,执行以下命令应用配置并重启Nginx服务:

sudo service nginx reload

请确保你具备足够的权限。

  1. 验证压缩和解压缩

现在你已经配置好了Nginx的压缩和解压缩模块。你可以通过向Nginx发送HTTP请求来验证这些功能是否生效。

首先,使用curl工具发送一个GET请求到配置的Nginx服务:

curl -H "Accept-Encoding: gzip, deflate" -I http://localhost

命令中的-H "Accept-Encoding: gzip, deflate"表示告诉服务器可以接受gzip或deflate的压缩方式。-I表示只获取响应头信息,而不需要获取完整的响应体。

如果一切正常,你将会在响应头中看到类似下面的信息:

Content-Encoding: gzip

这表示服务器已经将响应体压缩成gzip格式进行传输。

接下来,你可以使用以下命令发送一个解压缩的请求:

curl --compressed -I http://localhost

命令中的--compressed

Content-Encoding: 

La signification de la configuration ci-dessus est la suivante :

gzip on; signifie activer le module gzip.

gzip_types indique les types de fichiers qui doivent être compressés. Ici, nous avons sélectionné des fichiers texte, des fichiers CSS et des fichiers JavaScript. Vous pouvez le configurer selon vos besoins.

gzip_min_length signifie que seuls les fichiers dont la longueur dépasse cette valeur seront compressés.

gzip_comp_level indique le niveau de compression. Plus le niveau est élevé, meilleur est l'effet de compression, mais plus il consomme de ressources CPU.

    Configurer le module gunzip
  • Si vous devez décompresser la requête reçue, vous devez également activer le module gunzip. Recherchez le bloc http dans le même fichier de configuration et ajoutez la configuration suivante :
  • rrreee
    1. Appliquez la configuration et redémarrez Nginx
    Après avoir enregistré le fichier de configuration Nginx, exécutez la commande suivante pour appliquer la configuration et redémarrez le service Nginx : 🎜 rrreee🎜Veuillez vous assurer que vous disposez des autorisations suffisantes. 🎜
      🎜Vérifier la compression et la décompression🎜🎜🎜Vous avez maintenant configuré les modules de compression et de décompression de Nginx. Vous pouvez vérifier que ces fonctionnalités fonctionnent en envoyant une requête HTTP à Nginx. 🎜🎜Tout d'abord, utilisez l'outil curl pour envoyer une requête GET au service Nginx configuré : 🎜rrreee🎜-H "Accept-Encoding: gzip, deflate" dans la commande signifie indiquer au serveur qu'il peut acceptez la méthode de compression gzip ou deflate. -I indique que seules les informations d'en-tête de réponse sont obtenues, sans obtenir le corps complet de la réponse. 🎜🎜Si tout se passe bien, vous verrez des informations similaires à celles-ci dans l'en-tête de la réponse : 🎜rrreee🎜Cela signifie que le serveur a compressé le corps de la réponse au format gzip pour la transmission. 🎜🎜Ensuite, vous pouvez utiliser la commande suivante pour envoyer une requête de décompression : 🎜rrreee🎜Le --compressed dans la commande indique au serveur que la réponse reçue a été compressée et doit être décompressée. 🎜🎜Si tout se passe bien, vous verrez des informations similaires à celles-ci dans l'en-tête de la réponse : 🎜rrreee🎜Cela signifie que le serveur a décompressé le corps de la réponse et l'a transmis dans son format d'origine. 🎜🎜Grâce aux étapes et à la vérification ci-dessus, vous avez configuré avec succès les modules gzip et gunzip de Nginx pour implémenter la compression et la décompression des requêtes HTTP. 🎜🎜Résumé🎜🎜Cet article explique comment utiliser Nginx pour compresser et décompresser les requêtes HTTP, et fournit des exemples de configuration et de commandes associés. L'utilisation des modules gzip et gunzip de Nginx peut vous aider à réduire la quantité de transmission de données et à améliorer la vitesse de réponse des requêtes. Grâce à une configuration et une utilisation appropriées, les performances et l'expérience utilisateur des applications Web peuvent être améliorées. Si vous rencontrez des problèmes lors de l'utilisation, vous pouvez vous référer à la documentation officielle de Nginx ou demander de l'aide. J'espère que le contenu de cet article vous sera utile ! 🎜🎜Lien de référence : 🎜🎜🎜Documentation officielle Nginx : http://nginx.org/en/docs/🎜🎜Guide de configuration du module Gzip : https://nginx.org/en/docs/http/ngx_http_gzip_module.html🎜🎜 Guide de configuration du module Gunzip : https://nginx.org/en/docs/http/ngx_http_gunzip_module.html🎜🎜

    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