Maison >Opération et maintenance >Nginx >Configuration du cache proxy inverse Nginx pour améliorer la vitesse d'accès au site Web

Configuration du cache proxy inverse Nginx pour améliorer la vitesse d'accès au site Web

王林
王林original
2023-07-04 22:01:092329parcourir

Configuration du cache proxy inverse Nginx pour améliorer la vitesse d'accès aux sites Web

Introduction :
À l'ère d'Internet, la vitesse d'accès aux sites Web est cruciale. Un site Web qui se charge lentement rend les utilisateurs impatients et peut entraîner un désabonnement des utilisateurs. Afin d'améliorer la vitesse d'accès au site Web, une méthode courante consiste à réduire la charge sur le serveur et à accélérer le chargement de la page en utilisant le cache proxy inverse. Cet article explique comment utiliser Nginx pour configurer le cache proxy inverse afin d'améliorer la vitesse d'accès au site Web.

1. Qu'est-ce que le cache proxy inverse Nginx ?
Nginx est un serveur proxy inverse HTTP léger qui peut transmettre les requêtes des clients au serveur d'applications principal et mettre en cache les résultats renvoyés. Lorsque la même requête arrive la prochaine fois, Nginx peut renvoyer directement les résultats dans le cache sans demander à nouveau au serveur d'applications, accélérant ainsi le chargement des pages.

2. Étapes de configuration du cache proxy inverse Nginx :

  1. Installer Nginx
    Tout d'abord, nous devons installer Nginx sur le serveur. Pour les étapes d'installation spécifiques, vous pouvez vous référer à la documentation officielle de Nginx ou utiliser le gestionnaire de packages pour installer.
  2. Configurer Nginx
    Ouvrez le fichier de configuration Nginx et ajoutez le segment de code suivant dans le bloc serveur :

    proxy_cache_path /path/to/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m;

    La directive proxy_cache_path ici est utilisée pour configurer le chemin et la capacité du cache. path/to/cache est le chemin de stockage du cache, my_cache est le nom de la zone de cache, 10m spécifie la taille de la zone de cache, 10g signifie que la capacité maximale de l'ensemble du cache est de 10 Go, et inactive=60m signifie que le contenu mis en cache expirera s'il n'est pas consulté dans les 60 minutes. proxy_cache_path指令用于配置缓存的路径和容量。path/to/cache是缓存的存储路径,my_cache是缓存区的名称,10m指定了缓存区的大小,10g表示整个缓存的最大容量为10GB,inactive=60m表示缓存的内容在60分钟内没有被访问就过期。

在location块中添加如下代码段:

proxy_cache my_cache;
proxy_cache_valid 200 302 10m;
proxy_cache_valid 404 1m;

这里的proxy_cache指令用于启用缓存功能,proxy_cache_valid指令用于设置缓存的有效时间。上面的示例中,对于HTTP状态码为200和302的响应,缓存有效时间为10分钟;对于HTTP状态码为404的响应,缓存有效时间为1分钟。

  1. 配置缓存规则
    除了配置缓存路径和缓存有效时间,我们还可以设置一些缓存规则,以决定哪些请求需要被缓存。在location块中添加如下代码段:

    proxy_cache_key $host$uri$is_args$args;
    proxy_cache_bypass $http_cache_control;
    
    proxy_no_cache $http_pragma $http_authorization;

    上面的示例中,proxy_cache_key用于设置缓存的key,这里使用了请求的host、uri和参数作为key。proxy_cache_bypass用于绕过缓存,这里通过检查HTTP请求头中的Cache-Control字段实现了此功能。proxy_no_cache用于设置完全禁用缓存的条件,这里通过检查HTTP请求头中的PragmaAuthorization

  2. Ajoutez le segment de code suivant dans le bloc d'emplacement :

    sudo service nginx restart

    La directive proxy_cache ici est utilisée pour activer la fonction de cache, et la directive proxy_cache_valid est utilisée pour définir la durée de validité du cache. Dans l'exemple ci-dessus, pour les réponses avec les codes d'état HTTP 200 et 302, la durée de validité du cache est de 10 minutes ; pour les réponses avec le code d'état HTTP 404, la durée de validité du cache est de 1 minute.

    Configurer les règles de mise en cache

    En plus de configurer le chemin du cache et la durée de validité du cache, nous pouvons également définir certaines règles de mise en cache pour déterminer quelles requêtes doivent être mises en cache. Ajoutez le segment de code suivant dans le bloc d'emplacement :
    rrreee

    Dans l'exemple ci-dessus, proxy_cache_key est utilisé pour définir la clé de cache. Ici, l'hôte, l'uri et les paramètres demandés sont utilisés comme clé. proxy_cache_bypass est utilisé pour contourner le cache. Cette fonction est implémentée en vérifiant le champ Cache-Control dans l'en-tête de la requête HTTP. proxy_no_cache est utilisé pour définir les conditions de désactivation complète de la mise en cache. Cette fonction est implémentée ici en vérifiant les champs Pragma et Authorization dans l'en-tête de la requête HTTP. .


    Redémarrez Nginx

    Après avoir terminé la configuration ci-dessus, enregistrez et fermez le fichier de configuration. Utilisez ensuite la commande pour redémarrer Nginx :

    rrreee

    1. 3. Scénarios d'utilisation du cache proxy inverse Nginx
    2. Le cache proxy inverse Nginx convient aux sites Web dont le contenu est relativement stable et n'est pas mis à jour fréquemment. Par exemple, les pages Web statiques, les images, les ressources CSS et JavaScript peuvent être mises en cache pour réduire les requêtes adressées au serveur principal et améliorer la vitesse de chargement du site Web.
    3. Il est à noter que certains contenus dynamiques tels que les informations de connexion des utilisateurs ou le contenu personnalisé ne sont pas adaptés à la mise en cache.

    Conclusion : 

    La fonction de mise en cache du proxy inverse de Nginx peut accélérer efficacement l'accès aux sites Web. En configurant le cache proxy inverse Nginx, nous pouvons réduire la charge de requêtes sur le serveur backend et améliorer l'expérience d'accès de l'utilisateur. Cependant, il est crucial de configurer correctement les règles de mise en cache pour garantir le temps réel et la cohérence du contenu mis en cache. 🎜🎜Références : 🎜🎜🎜Documentation Nginx (https://nginx.org/en/docs/)🎜🎜Optimisation de Nginx pour les performances (https://www.nginx.com/blog/tuning-nginx/) 🎜 🎜🎜Grâce aux étapes ci-dessus, vous pouvez utiliser la configuration du cache proxy inverse de Nginx pour améliorer la vitesse d'accès au site Web. J'espère que ça aide. 🎜

    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