Maison  >  Article  >  Opération et maintenance  >  Comment utiliser Nginx pour une mise en cache de fichiers statiques hautes performances

Comment utiliser Nginx pour une mise en cache de fichiers statiques hautes performances

王林
王林original
2023-08-02 16:13:111873parcourir

Comment utiliser Nginx pour une mise en cache de fichiers statiques hautes performances

Nginx est un serveur Web open source léger qui a reçu une attention et une utilisation généralisées pour ses hautes performances et ses capacités de simultanéité élevées. En plus d'être un serveur Web, Nginx a également une fonction importante, qui consiste à fournir une fonction de mise en cache de fichiers statiques, ce qui peut considérablement optimiser la vitesse d'accès et les performances du site Web. Cet article explique comment utiliser Nginx pour une mise en cache de fichiers statiques hautes performances et fournit des exemples de code correspondants.

  1. Configurer Nginx pour l'accès aux fichiers statiques
    Afin d'activer la fonction de mise en cache des fichiers statiques, vous devez d'abord configurer Nginx pour identifier et gérer les demandes de fichiers statiques. Habituellement, les fichiers statiques incluent des images, des fichiers CSS, des fichiers JavaScript, etc. Voici un exemple simple de configuration Nginx :
server {
    listen 80;
    server_name example.com;

    root /path/to/static/files;

    location ~* .(jpg|jpeg|png|gif|css|js)$ {
        expires 30d;
        access_log off;
    }
}

Dans la configuration ci-dessus, listen spécifie le port sur lequel Nginx écoute et server_name spécifie le nom de domaine du serveur. root spécifie le répertoire racine où se trouvent les fichiers statiques. La directive location spécifie le modèle d'URL correspondant et les paramètres de traitement correspondants. Dans la configuration ci-dessus, l'expression régulière ~* .(jpg|jpeg|png|gif|css|js)$ correspond au suffixe de jpg, jpeg, png, gif, css ou js Pour les fichiers, expires spécifie que la période de validité du cache est de 30 jours et access_log off désactive la journalisation des accès aux fichiers statiques. listen指定了Nginx监听的端口,server_name指定了服务器的域名。root指定了静态文件所在的根目录。location指令指定了匹配的URL模式,以及对应的处理参数。在上面的配置中,通过正则表达式~* .(jpg|jpeg|png|gif|css|js)$匹配了以jpg、jpeg、png、gif、css或js为后缀的文件,expires指定了缓存的有效期为30天,access_log off则禁止了对静态文件的访问日志记录。

  1. 配置Nginx进行静态文件缓存
    为了启用Nginx的静态文件缓存功能,我们可以添加一些额外的配置指令。下面是一个示例:
location ~* .(jpg|jpeg|png|gif|css|js)$ {
    expires 30d;
    access_log off;
    add_header Cache-Control "public";
    add_header Pragma public;
    etag off;
}

在上述示例中,add_header指令添加了两个头部信息,分别是Cache-ControlPragma。这两个头部信息告诉客户端和其他缓存服务器在一定时间内可以使用缓存的副本。etag off禁用了Etag头部信息,因为在某些情况下,Etag可能会导致一些兼容性问题。

  1. 验证静态文件缓存是否生效
    为了验证静态文件缓存是否生效,可以使用浏览器的开发者工具或者命令行工具进行查看。在浏览器的开发者工具中,可以查看HTTP响应头部的Cache-ControlExpires字段,以及响应内容的大小。如果缓存生效,那么在第一次访问静态文件后,再次请求时会看到Cache-ControlExpires的值与上述配置一致,并且响应内容的大小会变得非常小。

另外,可以使用命令行工具如curl来查看HTTP响应头部信息。例如,可以执行以下命令来查看一个图片文件的HTTP响应头部信息:

$ curl -I example.com/path/to/image.jpg

如果缓存生效,那么你会在结果中看到类似下面的行:

Cache-Control: public, max-age=2592000
Expires: Thu, 10 Aug 2023 08:16:50 GMT
  1. 动态更新缓存
    有时候我们可能需要动态地更新缓存,例如当静态文件被修改后。可以通过在文件名或者路径中添加版本号来解决这个问题。例如,假设有一个CSS文件style.css,我们可以将其重命名为style.v1.css
    1. Configurer Nginx pour la mise en cache de fichiers statiques
    Afin d'activer la fonction de mise en cache de fichiers statiques de Nginx, nous pouvons ajouter quelques directives de configuration supplémentaires. Voici un exemple :

    $ nginx -s reload

    Dans l'exemple ci-dessus, la directive add_header ajoute deux informations d'en-tête, à savoir Cache-Control et le code Pragma >. Ces deux en-têtes indiquent aux clients et autres serveurs de mise en cache que la copie mise en cache est disponible pendant une certaine période de temps. etag off désactive les informations d'en-tête Etag, car dans certains cas, Etag peut provoquer des problèmes de compatibilité.

      Vérifiez si le cache de fichiers statiques est efficace
      Afin de vérifier si le cache de fichiers statiques est efficace, vous pouvez utiliser les outils de développement du navigateur ou les outils de ligne de commande pour vérifier. Dans les outils de développement du navigateur, vous pouvez afficher les champs Cache-Control et Expires de l'en-tête de réponse HTTP, ainsi que la taille du contenu de la réponse. Si le cache prend effet, après avoir accédé au fichier statique pour la première fois, vous verrez que les valeurs de Cache-Control et Expires sont cohérentes avec la configuration ci-dessus. lorsque vous demanderez à nouveau, le contenu de la réponse sera La taille deviendra très petite.

      🎜🎜De plus, vous pouvez utiliser des outils de ligne de commande tels que curl pour afficher les informations d'en-tête de réponse HTTP. Par exemple, vous pouvez exécuter la commande suivante pour afficher les informations d'en-tête de réponse HTTP d'un fichier image : 🎜rrreee🎜Si la mise en cache prend effet, vous verrez des lignes similaires à celles-ci dans les résultats : 🎜rrreee
        🎜Cache de mise à jour dynamique 🎜 Parfois, nous pouvons avoir besoin de mettre à jour le cache de manière dynamique, par exemple lorsqu'un fichier statique est modifié. Vous pouvez résoudre ce problème en ajoutant le numéro de version au nom ou au chemin du fichier. Par exemple, en supposant qu'il existe un fichier CSS style.css, nous pouvons le renommer en style.v1.css et mettre à jour le fichier de configuration de Nginx pour qu'il corresponde au nouveau nom de fichier. De cette façon, chaque fois que le fichier CSS est modifié, il vous suffit de mettre à jour le numéro de version dans le nom du fichier. 🎜🎜🎜De plus, Nginx fournit également une commande reload pour recharger le fichier de configuration sans arrêter le serveur. Par exemple, vous pouvez exécuter la commande suivante pour recharger le fichier de configuration Nginx : 🎜rrreee🎜 De cette façon, Nginx relira le fichier de configuration et la configuration mise à jour prendra effet immédiatement. 🎜🎜Résumé🎜En utilisant Nginx pour la mise en cache de fichiers statiques, les performances et la vitesse d'accès du site Web peuvent être considérablement améliorées. Dans cet article, nous expliquons comment configurer Nginx pour activer les fonctions d'accès aux fichiers statiques et de mise en cache, et fournissons des exemples de code et des méthodes de vérification correspondants. Espérons que ce contenu vous aidera à optimiser les performances de votre site Web. 🎜

    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