2017-10-02 4 views
0

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é.

Répondre

1

Essayez d'ajouter le type de contenu application/javascript:

gzip_types 
    text/css 
    text/javascript 
    text/xml 
    text/plain 
    text/x-component 
    application/javascript 
    application/json 
    application/xml 
    application/rss+xml 
    font/truetype 
    font/opentype 
    application/vnd.ms-fontobject 
    image/svg+xml; 

Je pris les valeurs de cette conf H5BP:

+0

Ouais, c'est le type MIME correct que je l'ai utilisé. – cinnaroll45