Si je comprends bien, il est préférable de ne pas compresser les petites ressources car elles pourraient grossir tout en ayant un impact sur les performances du processeur. L'utilisation de la directive gzip_min_length est donc une solution évidente. Cependant, lorsque j'essaie ceci sur un serveur qui exécute une API REST, je travaille sur cela ne semble pas fonctionner. Lorsque je reçois une réponse json vide, ou une toute petite, l'en-tête Content-Encoding est toujours présent et lit "gzip".Pourquoi la directive de longueur minimale de gzip n'est-elle pas respectée?
Ma question est pourquoi ce paramètre n'est pas respecté par Nginx et que puis-je faire pour y remédier?
L'API est construite sur le microframework Lumen.
Je joins le réglage Gzip J'utilise dans mon nginx.conf:
# Compression
# Enable Gzip compressed.
gzip on;
# Enable compression both for HTTP/1.0 and HTTP/1.1.
gzip_http_version 1.1;
# Compression level (1-9).
# 5 is a perfect compromise between size and cpu usage, offering about
# 75% reduction for most ascii files (almost identical to level 9).
gzip_comp_level 5;
# Don't compress anything that's already small and unlikely to shrink much
# if at all (the default is 20 bytes, which is bad as that usually leads to
# larger files after gzipping).
gzip_min_length 1000;
# Compress data even for clients that are connecting to us via proxies,
# identified by the "Via" header (required for CloudFront).
gzip_proxied any;
# Tell proxies to cache both the gzipped and regular version of a resource
# whenever the client's Accept-Encoding capabilities header varies;
# Avoids the issue where a non-gzip capable client (which is extremely rare
# today) would display gibberish if their proxy gave them the gzipped version.
gzip_vary on;
# Compress all output labeled with one of the following MIME-types.
gzip_types
application/atom+xml
application/javascript
application/json
application/rss+xml
application/vnd.ms-fontobject
application/x-font-ttf
application/x-web-app-manifest+json
application/xhtml+xml
application/xml
font/opentype
image/svg+xml
image/x-icon
text/css
text/plain
text/x-component;
# text/html is always compressed by HttpGzipModule
Êtes-vous sûr que c'est la compression nginx et non votre application? –
Oui, assez sûr ... :-) – Vercoutere
Je viens de rencontrer le même comportement et je suppose que c'est dû à la note dans la [documentation du module gzip NGINX] (http://nginx.org/fr/docs/http /ngx_http_gzip_module.html#gzip_min_length) indiquant "La longueur est déterminée uniquement à partir du champ d'en-tête de réponse" Content-Length "." – cebarth