Maison  >  Article  >  Opération et maintenance  >  Comment utiliser Nginx pour optimiser les performances des requêtes HTTP

Comment utiliser Nginx pour optimiser les performances des requêtes HTTP

WBOY
WBOYoriginal
2023-08-05 08:42:361374parcourir

Comment utiliser Nginx pour optimiser les performances des requêtes HTTP

Résumé : Nginx est un serveur Web hautes performances et un puissant serveur proxy inverse. Il peut améliorer les performances des requêtes HTTP de plusieurs manières. Cet article présentera quelques techniques d'utilisation de Nginx pour optimiser les performances des requêtes HTTP et fournira des exemples de code correspondants.

  1. Activer la mise en cache

L'activation de la fonction de mise en cache de Nginx peut réduire considérablement la charge du serveur et le temps de réponse aux demandes. Voici un exemple de configuration pour activer la mise en cache :

http {
  ...
  proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off;

  server {
    ...
    location / {
      proxy_pass http://backend;
      proxy_cache my_cache;
      proxy_cache_valid 200 302 10m;
      proxy_cache_valid 404 1m;
    }
  }
}

Dans l'exemple ci-dessus, nous définissons le chemin du cache et les options associées via la directive proxy_cache_path, puis utilisons le bloc location. La directive code>proxy_cache active la mise en cache et la directive proxy_cache_valid spécifie la durée de validité du cache des différents codes de réponse. proxy_cache_path指令设置了缓存路径和相关选项,然后在location块中使用了proxy_cache指令启用缓存,并通过proxy_cache_valid指令指定不同的响应码的缓存有效时间。

  1. 启用Gzip压缩

启用Gzip压缩可以减小传输文件的大小,进而减少网络带宽的占用。下面是一个启用Gzip压缩的示例配置:

http {
  ...
  gzip on;
  gzip_disable "msie6";
  gzip_vary on;
  gzip_proxied any;
  gzip_comp_level 6;
  gzip_buffers 16 8k;
  gzip_types text/plain text/css application/json application/javascript text/xml application/xml+rss application/atom+xml image/svg+xml;

  server {
    ...
    location / {
      proxy_pass http://backend;
      proxy_set_header Accept-Encoding "";
    }
  }
}

上述示例中,我们通过gzip on指令启用了Gzip压缩,并通过gzip_types指令指定了要进行压缩的文件类型。

  1. 使用HTTP/2

HTTP/2是一种新的网络协议,相较于HTTP/1.1有很多性能改进。启用HTTP/2可以提供更高的并发度并减少延迟。下面是一个启用HTTP/2的示例配置:

http {
  ...
  server {
    ...
    listen 443 ssl http2;
    ssl_certificate /path/to/certificate.crt;
    ssl_certificate_key /path/to/private.key;
    ...
  }
}

上述示例中,我们通过listen指令设置了使用443端口并启用了HTTP/2。

  1. 使用Nginx缓存加速服务

Nginx可以作为一个缓存加速服务,代理后端服务器的请求以减轻后端的负载。下面是一个启用缓存加速服务的示例配置:

http {
  ...
  upstream backend {
    server backend1.example.com;
    server backend2.example.com;
  }

  server {
    ...
    location / {
      proxy_pass http://backend;
      proxy_cache my_cache;
      proxy_cache_valid 200 302 10m;
      proxy_cache_valid 404 1m;
    }
  }
}

上述示例中,我们通过upstream指令定义了后端服务器的列表,然后在location块中使用了proxy_pass

    Activer la compression Gzip

    L'activation de la compression Gzip peut réduire la taille des fichiers transférés, réduisant ainsi l'utilisation de la bande passante du réseau. Voici un exemple de configuration pour activer la compression Gzip :

    rrreee

    Dans l'exemple ci-dessus, nous avons activé la compression Gzip via la directive gzip on et spécifié la compression via le fichier de directive gzip_types taper.

      Utiliser HTTP/2
    • HTTP/2 est un nouveau protocole réseau avec de nombreuses améliorations de performances par rapport à HTTP/1.1. L'activation de HTTP/2 offre une concurrence plus élevée et réduit la latence. Voici un exemple de configuration pour activer HTTP/2 :
    • rrreee
    • Dans l'exemple ci-dessus, nous avons défini l'utilisation du port 443 et activé HTTP/2 via la directive listen.
    1. Utiliser le service d'accélération du cache Nginx
    2. Nginx peut servir de service d'accélération du cache, en transmettant les requêtes des serveurs backend pour réduire la charge sur le backend. Voici un exemple de configuration pour activer le service d'accélération du cache : rrreee🎜Dans l'exemple ci-dessus, nous définissons la liste des serveurs backend via la directive upstream, puis l'utilisons à l'emplacement Bloc La directive proxy_pass est utilisée pour proxy les requêtes du serveur backend. 🎜🎜Conclusion : 🎜🎜En activant la mise en cache, en activant la compression Gzip, en utilisant HTTP/2 et en utilisant le service d'accélération du cache Nginx, nous pouvons améliorer considérablement les performances des requêtes HTTP. Vous trouverez ci-dessus quelques conseils et exemples de code correspondants pour utiliser Nginx afin d'optimiser les performances des requêtes HTTP. 🎜🎜Référence : 🎜🎜🎜Documentation Nginx : https://nginx.org/en/docs/🎜🎜Mise en cache Nginx : https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache🎜🎜Nginx Gzip Compression : https://nginx.org/en/docs/http/ngx_http_gzip_module.html🎜🎜Nginx HTTP/2 : https://nginx.org/en/docs/http/http2_module.html🎜🎜Proxy inversé Nginx : https https://nginx.org/en/docs/http/ngx_http_proxy_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