Maison >Opération et maintenance >Nginx >Comment utiliser Nginx pour la mise en cache proxy inverse des requêtes HTTP

Comment utiliser Nginx pour la mise en cache proxy inverse des requêtes HTTP

王林
王林original
2023-08-02 22:58:451056parcourir

Comment utiliser Nginx pour la mise en cache par proxy inverse des requêtes HTTP

Nginx est un logiciel de serveur Web open source hautes performances En plus de servir de serveur Web pour gérer les demandes de ressources statiques, Nginx peut également effectuer un proxy inverse pour les requêtes HTTP. Le proxy inverse peut nous aider à transférer les demandes des clients vers plusieurs serveurs principaux pour traitement et peut améliorer la vitesse de réponse grâce à la mise en cache. Cet article explique comment configurer le cache proxy inverse dans Nginx.

  1. Installer Nginx
    Tout d'abord, nous devons installer le serveur Nginx. Dans un environnement Linux, il peut être installé via le gestionnaire de packages. En prenant Debian/Ubuntu comme exemple, exécutez la commande suivante :

    sudo apt update
    sudo apt install nginx
  2. Configurer le cache proxy inverse
    Une fois l'installation terminée, nous devons éditer le fichier de configuration Nginx pour configurer le cache proxy inverse. Le fichier de configuration par défaut se trouve dans /etc/nginx/nginx.conf. Ouvrez le fichier avec un éditeur de texte et localisez le bloc http{}. /etc/nginx/nginx.conf。使用文本编辑器打开该文件,找到http{}块。

http{}块中添加以下配置:

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

其中,/path/to/cache是缓存路径,可以根据实际情况进行修改。levels=1:2表示缓存目录的层级。keys_zone=my_cache:10m表示为缓存分配10M的内存,用于存储缓存的元数据。max_size=10g表示缓存的最大大小为10G。inactive=60m表示缓存文件在60分钟没有被访问时会被认为是过期的。

然后,在server{}块内添加以下配置:

proxy_cache my_cache;
proxy_cache_valid 200 302 1h;
proxy_cache_valid 301 404 10m;
proxy_cache_use_stale error timeout updating http_500 http_503;

其中,proxy_cache my_cache表示启用名为my_cache的缓存。proxy_cache_valid用于配置不同状态码的缓存有效期时间,例如200和302状态码的请求缓存有效期为1小时。proxy_cache_use_stale用于指定当后端服务器出现错误或超时时,是否使用过期的缓存作为响应。

  1. 配置反向代理
    在完成了缓存的配置后,我们需要配置反向代理。在server{}块内,添加以下配置:

    location / {
     proxy_pass http://backend_server;
     proxy_set_header Host $host;
     proxy_cache_bypass $http_cache_control;
     proxy_cache_key $uri$is_args$args;
    }

    其中,proxy_pass指定了后端服务器的地址。proxy_set_header用于设置代理请求中的头信息,这里是将请求的host头设置为当前主机。proxy_cache_bypass用于指定哪些请求不使用缓存,这里是根据请求头中的cache-control来决定。proxy_cache_key

  2. Ajoutez la configuration suivante dans le bloc http{} :
  3. sudo systemctl restart nginx

    Parmi eux, /path/to/cache est le chemin du cache et peut être modifié selon la situation réelle. levels=1:2 indique le niveau du répertoire de cache. keys_zone=my_cache:10m signifie allouer 10 Mo de mémoire au cache pour stocker les métadonnées du cache. max_size=10g signifie que la taille maximale du cache est de 10G. inactive=60m signifie que le fichier cache sera considéré comme expiré s'il n'est pas consulté pendant 60 minutes.

    Ensuite, ajoutez la configuration suivante dans le bloc server{} :

    rrreee

    Où, proxy_cache my_cache signifie activer le cache nommé my_cache . proxy_cache_valid est utilisé pour configurer la période de validité du cache de différents codes d'état. Par exemple, la période de validité du cache des demandes de 200 et 302 codes d'état est de 1 heure. proxy_cache_use_stale est utilisé pour spécifier s'il faut utiliser un cache expiré comme réponse lorsqu'une erreur ou un délai d'attente se produit sur le serveur backend.
    1. Configurer le proxy inverse
      Après avoir terminé la configuration du cache, nous devons configurer le proxy inverse. Dans le bloc server{}, ajoutez la configuration suivante :

      rrreee

      Parmi eux, proxy_pass spécifie l'adresse du serveur backend. proxy_set_header est utilisé pour définir les informations d'en-tête dans la requête proxy. Ici, l'en-tête host de la requête est défini sur l'hôte actuel. proxy_cache_bypass est utilisé pour spécifier quelles requêtes n'utilisent pas le cache. Ceci est déterminé en fonction du cache-control dans l'en-tête de la requête. proxy_cache_key est utilisé pour générer une clé de cache, qui est une combinaison de l'URI et des paramètres demandés.

      🎜🎜🎜Redémarrez Nginx et testez🎜Après avoir terminé la configuration ci-dessus, enregistrez et quittez le fichier de configuration. Ensuite, redémarrez le service Nginx via la commande suivante : 🎜rrreee🎜 Ensuite, envoyez une requête via le navigateur ou l'outil de ligne de commande pour observer le fonctionnement du cache Nginx. 🎜🎜🎜🎜Résumé🎜Grâce aux étapes ci-dessus, nous avons configuré avec succès la fonction de cache de proxy inverse de Nginx. En utilisant la mise en cache, la vitesse de réponse aux requêtes peut être considérablement améliorée et la charge sur le serveur back-end peut être réduite. Dans le même temps, Nginx propose également des options de configuration flexibles qui peuvent être ajustées et optimisées en fonction des besoins réels. 🎜🎜J'espère que cet article vous aidera à comprendre et à utiliser la fonction de mise en cache du proxy inverse de Nginx. Si vous avez des questions ou des doutes, veuillez laisser un message dans la zone de commentaires et je ferai de mon mieux pour y répondre. 🎜

    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