Я активировал сжатие gzip в нашей установке Nginx. Мы запускаем несколько блоков сайтов / серверов на одной установке, я пока активировал gzip только для одного из них (наша главная страница). Это конфигурация для этого серверного блока:
server {
root /usr/share/nginx/sites/w_home/public;
index index.php index.html;
if ($host = domain.de) {
return 301 https://www.$host$request_uri;
} # managed by Certbot
client_max_body_size 20M;
gzip on;
gzip_min_length 1024;
gzip_proxied any;
gzip_types text/plain text/css text/javascript text/xml application/javascript application/x-javascript application/xml application/xml+rss image/x-icon image/svg+xml image/jpeg image/jpg image/png;
gzip_disable "MSIE [1-6]\.";
server_name domain.de www.domain.de;
location ~* \.(?:ico|css|js|gif|jpe?g|png)$ {
expires 30d;
add_header Pragma public;
add_header Cache-Control "public";
}
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php7.3-fpm-w_home.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
listen [::]:443 ssl ipv6only=on; # managed by Certbot
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/domain.de/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/domain.de/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
if ($host = domain.de) {
return 301 https://www.$host$request_uri;
} # managed by Certbot
gzip on;
gzip_min_length 1024;
gzip_proxied any;
gzip_types text/plain text/css text/javascript text/xml application/javascript application/x-javascript application/xml application/xml+rss image/x-icon image/svg+xml image/jpeg image/jpg image/png;
gzip_disable "MSIE [1-6]\.";
server_name domain.de www.domain.de;
listen 80;
listen [::]:80;
return 404; # managed by Certbot
}
gzip Тесты вроде вот этот действительно показывают, что gzip включен и работает, и действительно, большинство статических ресурсов теперь отправляются сжатыми. Однако некоторые файлы JavaScript - нет, о чем я впервые узнал из аналитики PageSpeed:
Все эти ресурсы размещены в одной конфигурации серверного блока / nginx. Что могло быть причиной этого?