J'utilise NGINX comme proxy inverse devant une application Node.js. Le proxy de base fonctionne parfaitement bien et je suis capable de compresser les assets sur le serveur Node avec le middleware compression
.Compression d'actifs avec NGINX en mode proxy inverse
Pour tester s'il est possible de déléguer la tâche de compression à Nginx, j'ai désactivé le middleware et maintenant je suis en train de gzip avec Nginx avec la configuration suivante:
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 300;
server {
listen 80;
## gzip config
gzip on;
gzip_min_length 1000;
gzip_comp_level 5;
gzip_proxied any;
gzip_vary on;
gzip_types text/plain
text/css
text/javascript
image/gif
image/png
image/jpeg
image/svg+xml
image/x-icon;
location/{
proxy_pass http://app:3000/;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_cache_bypass $http_upgrade;
}
}
}
Avec cette configuration, Nginx ne compresse pas les actifs. J'ai essayé de les déclarer dans le contexte location
avec différentes options mais aucune d'entre elles ne semble faire l'affaire.
Je n'ai pas trouvé de ressources pertinentes à ce sujet, donc je me demande si cela pourrait être fait de cette façon.
Points importants:
1- nœud et nginx sont sur différents conteneurs, donc je ne suis pas au service des actifs statiques avec Nginx. Je suis juste par proxy au serveur de noeud qui sert ces fichiers. Tout ce que j'essaie de faire est de décharger le serveur de noeud avec NGINX pour faire le gzipping.
2- Je teste toutes les réponses avec "Accept-Encoding: gzip" activé.
Ouais, c'est le type MIME correct que je l'ai utilisé. – cinnaroll45