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.
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
/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
用于指定当后端服务器出现错误或超时时,是否使用过期的缓存作为响应。
配置反向代理
在完成了缓存的配置后,我们需要配置反向代理。在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
http{}
: 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.
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. 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 :
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.
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!