Maison >développement back-end >tutoriel php >Comment utiliser le serveur proxy Nginx pour implémenter la mise en cache et le préchargement des services Web ?

Comment utiliser le serveur proxy Nginx pour implémenter la mise en cache et le préchargement des services Web ?

WBOY
WBOYoriginal
2023-09-05 10:55:541317parcourir

Comment utiliser le serveur proxy Nginx pour implémenter la mise en cache et le préchargement des services Web ?

Comment utiliser le serveur proxy Nginx pour implémenter la mise en cache et le préchargement des services Web ?

Présentation :
La performance est un aspect très important lors de la conception et du développement de services Web. Afin d'améliorer les performances des applications Web, nous pouvons utiliser le serveur proxy Nginx pour implémenter la mise en cache et le préchargement. Cet article explique comment utiliser le serveur proxy Nginx pour implémenter la mise en cache et le préchargement des services Web, et fournit des exemples de code correspondants.

Mécanisme de mise en cache Nginx :
Nginx est un serveur HTTP et proxy inverse hautes performances. Son mécanisme de mise en cache peut considérablement améliorer la vitesse de réponse des applications Web. Le mécanisme de mise en cache de Nginx est basé sur la configuration spécifiée du serveur proxy. Il peut mettre en cache des fichiers statiques et du contenu dynamique, et contrôler la période et le mécanisme de validité du cache en fonction de différentes conditions.

  1. Configurer le serveur proxy Nginx :
    Tout d'abord, vous devez configurer le serveur proxy Nginx pour activer la mise en cache. Dans le fichier de configuration Nginx, recherchez la section de configuration du serveur proxy correspondante et ajoutez les éléments de configuration suivants :
location / {
    proxy_pass http://backend; # 将请求代理到后端服务器
    proxy_cache my_cache; # 启用缓存
    proxy_cache_valid 200 302 10m; # 缓存200和302状态码的响应10分钟
    proxy_cache_valid any 1m; # 缓存其他状态码的响应1分钟
    proxy_cache_bypass $http_cache_control; # 根据请求的Cache-Control头来决定是否绕过缓存
}
  1. Configurez la période de validité du cache :
    Dans les éléments de configuration ci-dessus, proxy_cache_valid spécifie la validité du cache période . Pour les réponses avec des codes d'état 200 et 302, la période de validité du cache est définie sur 10 minutes ; pour les réponses avec d'autres codes d'état, la période de validité du cache par défaut est de 1 minute. Peut être adapté et étendu en fonction des besoins spécifiques. proxy_cache_valid指定了缓存的有效期。对于200和302状态码的响应,缓存有效期设置为10分钟;对于其他状态码的响应,默认缓存有效期为1分钟。可以根据具体需求进行调整和扩展。
  2. 配置请求的缓存绕行条件:
    其中的proxy_cache_bypass配置项用于根据请求的Cache-Control头来决定是否绕过缓存。如果请求中携带了Cache-Control: no-cache头,那么将绕过缓存,直接请求后端服务器。

Nginx预加载机制:
除了缓存机制,Nginx还提供了预加载机制,可以在后台定期预加载缓存。通过预加载,Nginx可以提前将一些常用的资源加载到缓存中,以提高响应速度。

  1. 配置预加载任务:
    可以使用Nginx提供的ngx_http_proxy_module模块和ngx_http_upstream_module
  2. Configurez les conditions de contournement du cache de la requête :
L'élément de configuration proxy_cache_bypass est utilisé pour décider s'il faut contourner le cache en fonction de l'en-tête Cache-Control de la requête. Si la requête porte l'en-tête Cache-Control: no-cache, le cache sera contourné et le serveur backend sera demandé directement.

  1. Mécanisme de préchargement Nginx :
  2. En plus du mécanisme de mise en cache, Nginx fournit également un mécanisme de préchargement qui peut précharger le cache régulièrement en arrière-plan. Grâce au préchargement, Nginx peut charger à l'avance certaines ressources couramment utilisées dans le cache pour améliorer la vitesse de réponse.

Configuration des tâches de préchargement :

Vous pouvez utiliser le module ngx_http_proxy_module et le module ngx_http_upstream_module fournis par Nginx pour configurer les tâches de préchargement. Dans le fichier de configuration Nginx, vous pouvez ajouter les éléments de configuration suivants :

location /preload {
    proxy_pass http://backend; # 预加载任务代理到后端服务器
    proxy_cache my_cache; # 启用缓存
    proxy_cache_purge off; # 禁止清除缓存
}


Effectuer des tâches de préchargement :

Vous pouvez utiliser des outils tels que Cron pour effectuer périodiquement des tâches de préchargement. Par exemple, vous pouvez utiliser la commande suivante pour effectuer une tâche de préchargement : 🎜🎜
curl -XGET http://nginx_server/preload
🎜La commande ci-dessus incitera Nginx à envoyer une demande de préchargement au serveur backend pour stocker les ressources préchargées dans le cache. 🎜🎜Résumé : 🎜En configurant le mécanisme de mise en cache et de préchargement du serveur proxy Nginx, nous pouvons considérablement améliorer les performances et la vitesse de réponse des applications Web. Le mécanisme de mise en cache peut réduire le nombre de requêtes adressées au serveur backend, tandis que le mécanisme de préchargement peut régulièrement précharger le cache en arrière-plan pour préparer les ressources à l'avance et accélérer la réponse. L'utilisation du serveur proxy Nginx pour implémenter la mise en cache et le préchargement est non seulement simple et efficace, mais peut également améliorer efficacement l'expérience utilisateur et les performances des applications Web. 🎜🎜Exemple de code : 🎜Exemple de fichier de configuration Nginx : 🎜
http {
    proxy_cache_path /path/to/cache levels=1:2 keys_zone=my_cache:30m max_size=10g;
    server {
        listen 80;
        server_name my_server;
        
        location / {
            proxy_pass http://backend;
            proxy_cache my_cache;
            proxy_cache_valid 200 302 10m;
            proxy_cache_valid any 1m;
            proxy_cache_bypass $http_cache_control;
        }
        
        location /preload {
            proxy_pass http://backend;
            proxy_cache my_cache;
            proxy_cache_purge off;
        }
    }
}

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