Maison  >  Article  >  Opération et maintenance  >  Comment implémenter la configuration du cache du proxy inverse Nginx

Comment implémenter la configuration du cache du proxy inverse Nginx

王林
王林original
2023-11-08 11:48:20872parcourir

Comment implémenter la configuration du cache du proxy inverse Nginx

Comment implémenter la configuration du cache proxy inverse Nginx

Nginx est un serveur Web et un serveur proxy inverse hautes performances qui peuvent être configurés pour implémenter un cache proxy inverse afin d'améliorer les performances du site Web et l'expérience utilisateur. Cet article présentera en détail comment configurer le cache proxy inverse de Nginx et fournira des exemples de code spécifiques.

  1. Activer la fonction de mise en cache de Nginx

Tout d'abord, vous devez activer la fonction de mise en cache dans le fichier de configuration de Nginx. Ouvrez le fichier de configuration Nginx (généralement situé dans /etc/nginx/nginx.conf), recherchez le bloc http et ajoutez le code suivant :

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

Dans le code ci-dessus, /path/to/cache est le cache Nginx. Le chemin de sauvegarde du fichier doit être modifié en fonction de la situation réelle du serveur lors de l'utilisation réelle. keys_zone=my_cache:10m consiste à définir le nom et l'espace disponible de la zone de cache, qui peuvent être modifiés en fonction des besoins réels. max_size=10g est la capacité maximale du fichier cache, qui peut être ajustée en fonction de l'espace disque du serveur. inactive=60m sert à définir le délai d'expiration des fichiers mis en cache. Passé ce délai, ils seront supprimés. use_temp_path=off consiste à désactiver le chemin de stockage des fichiers temporaires. /path/to/cache是Nginx缓存文件保存的路径,在实际使用时需要根据服务器的实际情况进行修改。keys_zone=my_cache:10m是设置缓存区的名称和可用空间大小,可以根据实际需求进行修改。max_size=10g是设置缓存文件的最大容量,可以根据服务器的磁盘空间进行调整。inactive=60m是设置缓存文件的过期时间,超过该时间将被删除。use_temp_path=off是禁用临时文件存储路径。

  1. 配置Nginx反向代理缓存

接下来,需要在Nginx的配置文件中配置反向代理和缓存的具体规则。在server块中添加以下代码:

server {
    ...
    location / {
        proxy_pass http://backend;
        proxy_set_header Host $host;
        proxy_cache my_cache;
        proxy_cache_valid 200 301 302 404 1h;
        proxy_cache_use_stale updating;
        proxy_cache_background_update on;
    }
    ...
}

上述代码中,proxy_pass http://backend将请求转发给后端服务器。proxy_set_header Host $host用于传递请求的域名或IP地址。proxy_cache my_cache指定使用的缓存区名称。proxy_cache_valid 200 301 302 404 1h设置缓存的有效期,200、301、302和404是对应的HTTP状态码,1h表示一小时。proxy_cache_use_stale updating配置更新缓存时使用过期数据。proxy_cache_background_update on启用后台更新缓存。

  1. 配置Nginx缓存的附加规则

如果需要对特定的URL进行缓存或不缓存,可以添加更多的配置规则。以下是一些常用的示例代码:

location /static {
    proxy_pass http://backend;
    proxy_set_header Host $host;
    proxy_cache my_cache;
    proxy_cache_valid 200 301 302 404 7d;
    proxy_cache_use_stale updating;
    proxy_cache_background_update on;
}

location /no-cache {
    proxy_pass http://backend;
    proxy_set_header Host $host;
    proxy_cache off;
}

上述代码中,/static表示需要缓存的URL路径,7d表示缓存有效期为7天。/no-cache表示不需要缓存的URL路径,proxy_cache off禁用缓存。

  1. 重启Nginx服务器

完成以上配置后,需要重新启动Nginx服务器,使配置生效。在命令行中执行以下命令:

sudo service nginx restart
  1. 验证缓存配置

可以使用浏览器访问网站,并在响应头中查看是否存在缓存相关的字段。可以通过在开发者工具中查看Network tab或使用curl命令进行验证。

curl -I http://your-website.com

在响应头中,可以查看Cache-ControlLast-ModifiedX-CacheX-Cache-Status

    Configurer le cache du proxy inverse Nginx

    Ensuite, vous devez configurer les règles spécifiques du proxy inverse et du cache dans le fichier de configuration Nginx. Ajoutez le code suivant dans le bloc serveur :

    rrreee🎜Dans le code ci-dessus, proxy_pass http://backend transmet la requête au serveur backend. proxy_set_header Host $host est utilisé pour transmettre le nom de domaine ou l'adresse IP demandée. proxy_cache my_cache précise le nom de la zone de cache utilisée. proxy_cache_valid 200 301 302 404 1hDéfinissez la période de validité du cache 200, 301, 302 et 404 sont les codes d'état HTTP correspondants, 1h signifie une heure. proxy_cache_use_stale mise à jourConfigurer l'utilisation des données expirées lors de la mise à jour du cache. proxy_cache_background_update onActive le cache de mise à jour en arrière-plan. 🎜
      🎜Configuration de règles supplémentaires pour la mise en cache Nginx🎜🎜🎜Vous pouvez ajouter plus de règles de configuration si vous devez mettre en cache ou non des URL spécifiques. Voici quelques exemples de codes couramment utilisés : 🎜rrreee🎜Dans le code ci-dessus, /static indique le chemin de l'URL qui doit être mis en cache, et 7d indique que la validité du cache le délai est de 7 jours. /no-cache indique un chemin d'URL qui n'a pas besoin d'être mis en cache. proxy_cache off désactive la mise en cache. 🎜
        🎜Redémarrez le serveur Nginx🎜🎜🎜Après avoir terminé la configuration ci-dessus, vous devez redémarrer le serveur Nginx pour que la configuration prenne effet. Exécutez la commande suivante dans la ligne de commande : 🎜rrreee
          🎜Vérifier la configuration du cache🎜🎜🎜Vous pouvez utiliser un navigateur pour accéder au site Web et vérifier s'il existe des champs liés au cache dans l'en-tête de réponse. Cela peut être vérifié en affichant l'onglet Réseau dans les outils de développement ou en utilisant la commande curl. 🎜rrreee🎜Dans les en-têtes de réponse, vous pouvez voir Cache-Control, Last-Modified, X-Cache et X-Cache - Statut et autres champs pour vérifier si la configuration du cache proxy inverse est efficace. 🎜🎜Résumé🎜🎜Cet article présente comment implémenter la configuration du cache proxy inverse de Nginx. En configurant la fonction de mise en cache de Nginx, les performances et l'expérience utilisateur du site Web peuvent être considérablement améliorées. Il convient de noter que les règles de configuration spécifiques doivent être ajustées en fonction de la situation réelle du serveur pour garantir l'applicabilité et la stabilité de la configuration du cache. 🎜

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