Nginx Cache Configuration

Nginx's global settings allow you to change the default values used by the module on each site. So be very careful when editing, a bad modification could cause damage to some sites like session sharing on online shops.
The module will assign different priorities if multiple values are available for the same site. It is therefore likely that a site does not use the default settings.
The module will first check if the user has created a configuration for a particular site, then it will check if a user has a global configuration for all its sites and finally he will use the default settings.
Category
The settings have been classified into several categories to ease navigation.
When a user changes the advanced settings inside the cPanel panel, the "Statics" category includes the categories of the following WHM interface:
- Static files
- Images files
- Archives, Medias and document files
- Font files
This is to simplify the configuration for users.
Here is the description of each category:
Gzip compression :
Enable or disable Gzip compression on all pages served by Nginx.
Dynamic files :
Allows you to change the settings of dynamic files.
Dynamic files are all files sent as HTML to the browser, so this category includes PHP files (once compiled) and static HTML files.
Static files :
By default, the category groups Json, xml, rss and atom files.
Cascading Style Sheet and Javascript (CSS and JS) :
By default, the category groups the files css and js.
Images files :
By default, the category groups ico, jpg, jpeg, gif, png, webp files.
Archives, Medias and document files :
By default, the category groups 3gp, 7z, avi, bmp, bz2, csv, divx, doc, docx, eot, exe, flac, flv, gz, less, mid, midi, mka, mkv, mov, mp3 files, mp4, mpeg, mpg, odp, ods, odt, ogg, ogm, ogv, opp, pdf, ppt, pptx, rar, rtf, swf, tar, tbz, tgz, tiff, txz, wav, webm, wma, wmv, xls, xlsx, xz, zip.
Fonts files :
By default, the category groups the files eot, ttf, otf, woff, woff2, svg, svgz.
Category settings
Each category has several common settings. For each setting, you can click on the question mark icon for a brief description of its functionality.
At each of the settings, the initial parameters of the module remain indicated, so it is possible at any time to easily reset the default settings.
Here is a description of each of the settings.
Enable server side caching :
When the option is enabled, it gives the Nginx server the option of placing item in the cache according to the other settings.
Allow Nginx to update the cache file in a background process :
Allows Nginx to serve a cache item even if it is considered too old. This option also allows Nginx to serve a cache item (if available) when the Apache server is unable to serve it. For example, if the Apache server returns a 500 error, Nginx can be asked to serve the version of the cached item even if it is no longer considered valid.
If the Apache server is still running, at the same time that Nginx is serving an item that is too old from the cache, it will make a request to the Apache server to update the version of the item it has in its cache. This behavior prevents visitors to a site from waiting longer when the cache needs to be refreshed.
This setting is available only for dynamic content and is called server stale content.
Force the browser cache :
This setting allows Nginx to send instruction to ask the client's browser to keep a copy of the item in its local cache.
It is important to take into consideration that if an item is in the local cache of a browser, it is not possible for the module to purge it remotely. Great care must be taken when activating this function for dynamic content, but it is advisable to activate it for all static content.
This setting is available only for dynamic content, for static content we simply need to specify the time that the item should remain in the browser cache.
Browser cache expire time :
This setting defines the time that the browser should keep an item in its local cache. The setting is taken into consideration only if the "Force the browser cache" setting is enabled.
Bypass cache control :
Several CMS (like WordPress, Joomla, Drupal, etc.) will sometimes set parameters in the headers of HTML requests to warn not to keep a copy of some cached pages. These settings are "Cache-Control", "Expires" and "Pragma".
This option allows Nginx to ignore these headers when it analyzes whether to put the page in its cache.
Note: This option is available only with dynamic content.
URI string that should not be cached. :
In this setting we can define parts of a URI that should never be placed in the cache. As soon as Nginx sees an address with a URI corresponding to one of those in the list, it will place the request in "Bypass" mode so as not to place the item in its cache.
Note: It is important to separate each item by a comma in the list.
Cookies that should not be cached. :
We can put a list of cookies that should never be placed in Nginx's cache. If one of these is present on a page, it will be classified as "Bypass" to not be placed in the cache.
This setting is available only for dynamic content.
Note: It is important to separate each item by a comma in the list.
Stale cache : Serve cache file for the following scenarios :
This setting allows you to choose for which cases Nginx is allowed to serve an item in the cache even if the cache is considered expired.
This function can be activated for the following scenarios:
- Backend error message: The Apache server returns an unknown error.
- Backend timeout The Apache server did not have time to respond within the prescribed time.
- Invalid header: The header of the item sent by Apache is not valid.
- Cache begin updated: The item in the cache is no longer valid, Nginx will refresh it in the background.
- 403 error: Access prohibited.
- 404 error: Element not found.
- 500 error: Apache server error, it can not understand the requested settings.
- 502 error : Gateway error, Nginx can not join the Apache server.
- 503 error : Service not available.
- 504 error : Waiting time of the gateway has been exceeded.
Backend server response code for caching :
This setting makes it possible to decide which answer code Apache is considered acceptable for the item to be placed in the cache.
Note: It is important to separate each item by a comma in the list.
Amount of time the page can stay in Nginx cache :
Define the number of times an item can be kept inside the Nginx cache before being considered "STALE".
Réglage global de la cache de Nginx
Les réglages globaux de Nginx permettent de modifier les valeurs par défaut utilisées par le module pour chacun des sites. Il faut donc être très prudent lors de la modification, car une mauvaise modification pourrait causer des dommages à certains sites comme ceux qui possèdent des boutiques en ligne.
Le module va attribuer des priorités aux différents réglages. Il est donc probable qu’un site n’utilise pas les réglages par défaut.
Le module va premièrement vérifier si l’utilisateur à créer une configuration pour un site en particulier, par la suite, il va vérifier si un utilisateur a une configuration globale pour tous ses sites et finalement il va utiliser les paramètres par défaut.
Catégorie
Les réglages ont été classés en plusieurs catégories pour en faciliter la navigation.
Quand un utilisateur modifie les réglages avancés à l’intérieur du panneau cPanel, la catégorie « Statics » inclut les catégories de l’interface WHM suivante :
- Static files
- Images files
- Archives, Medias and document files
- Font files
Ceci est dans l’objectif de simplifier la configuration pour les utilisateurs.
Voici le descriptif de chacune des catégories :
Gzip compression :
Permets d’activer ou de désactiver la compression Gzip sur toutes les pages servies par Nginx.
Dynamic files :
Permets de modifier les réglages des fichiers dynamiques.
Les fichiers dynamiques sont tous les fichiers envoyés sous forme HTML au navigateur, donc cette catégorie inclut les fichiers PHP (une fois compilés) et les fichiers HTML statiques.
Static files :
Par défaut, la catégorie regroupe les fichiers Json, xml, rss et atom.
Cascading Style Sheet and Javascript (CSS and JS) :
Par défaut, la catégorie regroupe les fichiers css et js.
Images files :
Par défaut, la catégorie regroupe les fichiers ico, jpg, jpeg, gif, png, webp.
Archives, Medias and document files :
Par défaut, la catégorie regroupe les fichiers 3gp, 7z, avi, bmp, bz2, csv, divx, doc, docx, eot, exe, flac, flv, gz, less, mid, midi, mka, mkv, mov, mp3, mp4, mpeg, mpg, odp, ods, odt, ogg, ogm, ogv, opus, pdf, ppt, pptx, rar, rtf, swf, tar, tbz, tgz, tiff, txz, wav, webm, wma, wmv, xls, xlsx, xz, zip.
Fonts files :
Par défaut, la catégorie regroupe les fichiers eot, ttf, otf, woff, woff2, svg, svgz.
Réglages des catégories
Chacune des catégories regroupe plusieurs réglages communs. Pour chacun des réglages, il est possible d’appuyer sur le point d’interrogation à l’écran pour avoir une brève description de sa fonctionnalité.
À chacun des réglages, les paramètres initiaux du module restent indiqués, donc il est possible en tout temps de facilement replacer les paramètres par défaut.
Voici un descriptif de chacun des réglages.
Enable server side caching :
Quand l’option est activée, elle donne la possibilité au serveur Nginx de placer l’item dans la cache en respectant les autres réglages.
Allow Nginx to update the cache file in a background process :
Permets à Nginx de servir un item de la cache même si celle-ci est considérée comme trop veille. Cette option permet également à Nginx de servir un item de la cache (s’il est disponible) si le serveur Apache n’est pas en mesure de la servir. Par exemple, si le serveur Apache retourne une erreur 502, on peut demander à Nginx de servir la version de l’item en cache même si elle n’est plus valide.
Si le serveur Apache est encore en fonction, en même temps que Nginx sert un item trop vieux de la cache, il va effectuer une requête au serveur Apache pour mettre à jour la version de l’item qu’il a dans sa cache. Ce comportement évite que les visiteurs d’un site doivent attendre plus longtemps lorsque la cache doit être rafraichie.
Ce réglage est disponible seulement pour le contenu dynamique.
Force the browser cache :
Ce réglage permet à Nginx d’envoyer une instruction pour demander au navigateur du client de garder une copie de l’item dans sa cache locale.
Il est important de prendre en considération que si un item est dans la cache locale d’un navigateur, il n’est pas possible pour le module de la purger à distance. Il faut donc faire preuve de beaucoup de prudence si on active cette fonction pour du contenu dynamique, mais il est conseillé de l’activer pour tous les contenus statiques.
Ce réglage est disponible seulement pour le contenu dynamique car pour le contenu statique nous devons simplement spécifier le temps que l’item doit rester dans la cache du navigateur.
Browser cache expire time :
Ce réglage défini le temps qu’on demande au navigateur de garder un item dans sa cache. Le réglage est pris en considération seulement si le réglage « Force the browser cache » est activé.
Bypass cache control :
Plusieurs CMS (comme WordPress, Joomla, Drupal, etc.) où autre type de site vont parfois régler des paramètres dans les entêtes des requêtes HTML pour aviser de ne pas garder une copie de certaines pages en cache. Ces paramètres sont les « Cache-Control », « Expires » et « Pragma ».
Cette option permet à Nginx d’ignorer ces entêtes lors de son analyse à savoir s’il doit placer la page dans sa cache.
Note : Cette option est disponible seulement avec le contenu dynamique.
URI string that should not be cached. :
Dans ce réglage on peut définir des partis d’un URI qui ne devrait jamais être placé dans la cache. Aussitôt que Nginx voit une adresse avec un URI qui correspond à un de ceux de la liste, il va placer la requête en mode « Bypass » pour ne pas placer l’item dans sa cache.
Note : Il est important de séparer chaque item par une virgule dans la liste.
Cookies that should not be cached. :
Un peut placer une liste de témoins (cookie) qui ne devraient jamais être placés dans la cache de Nginx. Si un de ceux-ci est présent sur une page, il sera classé comme « Bypass » pour ne pas être placé dans la cache.
Ce réglage est disponible seulement pour le contenu dynamique.
Note : Il est important de séparer chaque item par une virgule dans la liste.
Stale cache : Serve cache file for the following scenarios :
Ce réglage permet de choisir les cas pour lesquels on autorise Nginx à servir un item de la cache même si ce dernier est considéré comme expiré.
On peut activer cette fonction pour les scénarios suivant :
- Backend error message : Le serveur Apache retourne une erreur inconnue.
- Backend timeout : Le serveur Apache n’a pas eu le temps de répondre dans les délais prescrits.
- Invalid header : L’entête de l’item envoyé par Apache n’est pas valide.
- Cache begin updated : L’item dans la cache n’est plus valide, Nginx va la rafraichir en arrière-plan.
- 403 error : Erreur d’accès interdit.
- 404 error : Erreur d’élément non trouvé.
- 500 error : Erreur du serveur Apache, celui-ci ne peut compiler les réglages demandés.
- 502 error : Erreur de passerelle, Nginx ne peut pas rejoindre le serveur Apache.
- 503 error : Erreur de service non disponible.
- 504 error : Temps d’attente de la passerelle a été dépassé.
Backend server response code for caching :
Ce réglage permet de décider quel code de réponse fait par Apache est considéré comme acceptable pour que l’item soit placé dans la cache.
Note : Il est important de séparer chaque item par une virgule dans la liste.
Amount of time the page can stay in Nginx cache :
Définis le nombre de temps qu’un item peut être gardé à l’intérieur de la cache de Nginx avant d’être considéré comme « STALE ».
