Je me suis beaucoup concentré sur l'optimisation d'un certain site Web afin qu'il obtienne un score de 100 sur l'outil Google PageSpeed Insights (pour mobile et pour ordinateur). La plupart des éléments fonctionnent parfaitement, mais je continue de recevoir l'avertissement «Activer la compression» pour le site Web.
C'est gênant, car gzip est activé sur mon serveur, et les seules ressources qui sont servies non compressées proviennent du module NGINX PageSpeed. J'ai parcouru les pages de configuration sur le site Web de Google, mais rien ne décrit comment activer la compression, à part la configuration générale de NGINX qui est déjà en place.
Ma question est la suivante: comment activer la compression gzip pour qu'elle fonctionne pour les ressources de pagespeed?
Configuration de mon serveur:
Ubuntu 12.0.4.3 LTS NGINX - 1.5.4 compilé avec le module PageSpeed 1.6.29.5 beta
Configuration du serveur NGINX:
user www-data;
#set worker processes to cpu processes
worker_processes 4;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
events {
worker_connections 1024;
}
http {
client_max_body_size 200m;
include /etc/nginx/mime.types;
default_type application/octet-stream;
access_log /var/log/nginx/access.log;
sendfile on;
keepalive_timeout 3;
types_hash_max_size 2048;
gzip on;
gzip_disable msie6;
gzip_static on;
gzip_types text/plain text/css application/x-javascript text/xml application/xml+rss text/javascript;
gzip_vary on;
fastcgi_read_timeout 2m;
include global/caching.conf;
include /etc/nginx/enabled-sites/*;
upstream php {
server 127.0.0.1:9000;
}
#fastcgi caching header
add_header mcapp-fastcgi-cache $upstream_cache_status;
}
Configuration du site Web:
server {
server_name www.examplesite.com;
rewrite ^ $scheme://examplesite.com$request_uri permanent;
}
server {
#pagespeed directives
pagespeed On;
pagespeed FileCachePath /var/cache/nginx-pagespeed;
location ~ "\.pagespeed\.([a-z]\.)?[a-z]{2}\.[^.]{10}\.[^.]+" {
add_header "" "";
}
location ~ "^/ngx_pagespeed_static/" { }
location ~ "^/ngx_pagespeed_beacon$" { }
#pagespeed directives end
server_name examplesite.com;
root /path/to/examplesite;
# wordpress config
include global/restrictions.conf;
include global/wordpress.conf;
}
EDIT Juste pour développer davantage, les actifs spécifiques qui ne semblent pas être compressés sont les actifs javascript. Par exemple:
Enable compression for the following resources to reduce their transfer size by 355.5KiB (69% reduction).
Compressing http://examplesite.com/wp-includes/js/jquery/jquery.js,qver=1.10.2.pagespeed.jm.iCH2ukpEYb.js could save 58.8KiB (64% reduction).
Compressing http://examplesite.com/wp-content/themes/Avada/framework/plugins/revslider/rs-plugin/js/jquery.themepunch.revolution.min.js?ver=3.6.1 could save 43.9KiB (80% reduction).
la source
expires 24hrs
pour une raison que je reçois toujours "BEEEEP, YOU'RE HOLDING IT WRONG". il en va de même pour YSLOWRéponses:
Après beaucoup plus de tirages de cheveux, de grincements de dents et de poinçonnage de haut-parleur (et de recherche sur Google), je suis tombé sur une demande de défaut dans un forum de support NGINX pour changer le type mime javascript (.js) de application / x-javascript à l'application / javascript. Voir http://trac.nginx.org/nginx/ticket/306
Comme vous pouvez le voir par le nginx.conf dans ma question, j'avais:
Cela provoquait essentiellement l'ignorance de mes fichiers javascript par les gzip_types, car il n'y a plus de type mime application / x-javascript (sauf si vous en créez un personnalisé dans mime-types.conf ou si vous avez une très ancienne version de NGINX) .
J'ai changé cette ligne en celle-ci:
Après un rechargement de NGINX, mes fichiers javascript se compressent très bien! Donc, il s'avère que cela n'avait rien à voir avec le module PageSpeed, et à la place, c'était un problème avec ma configuration qui n'identifiait pas le type mime correct à compresser.
la source
application/x-javascript
etapplication/javascript
, puisque pendant mes demandes, j'obtenais les deux types de mime (je me demande si je devrais passer à justeapplication/javascript
.À partir de la version 1.9.32.1-beta, ngx_pagespeed activera et configurera gzip lui-même lorsqu'aucune configuration explicite de gzip n'existe dans nginx (et que le module de compression gzip est compilé).
Voir https://developers.google.com/speed/pagespeed/module/release_notes#release_1.9.32.1-beta
la source
Conformément à la RFC 4329 , votre serveur Web doit utiliser
application/javascript
et nonapplication/x-javascript
.Tout d'abord, vous devez vérifier que votre
/etc/nginx/nginx.conf
fichier contient (au moins) àapplication/javascript
côté degzip_types
:Par exemple
Ensuite, ouvrez votre fichier de types MIME
/etc/nginx/mime.types
et assurez-vous que si vous voyez ceci:à
Enfin, rechargez votre configuration:
C'est ça!
la source