Я запускаю магнето на nginx, и я настроил кеширование изображений на год, все еще в gtmetrix, для некоторых изображений, которые я получаю кеширование (5 минут)
server {
listen 0.0.0.0:443 default_server ssl;
server_name somedomain.com;
server_name www.somedomain.com;
server_name ipv4.somedomain.com;
pagespeed EnableFilters prioritize_critical_css;
pagespeed EnableFilters extend_cache;
ssl_certificate /usr/local/psa/var/certificates/cert-TANhO4;
ssl_certificate_key /usr/local/psa/var/certificates/cert-TANhO4;
ssl_client_certificate /usr/local/psa/var/certificates/cert-R31hv6;
ssl_session_timeout 5m;
ssl_protocols SSLv2 SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
client_max_body_size 128m;
root "/var/www/vhosts/somedomain/httpdocs";
access_log "/var/www/vhosts/system/somedomain/logs/proxy_access_ssl_log";
error_log "/var/www/vhosts/system/somedomain/logs/proxy_error_log";
location / {
proxy_pass https://192.168.1.232:7081;
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 X-Accel-Internal /internal-nginx-static-location;
access_log off;
}
location /internal-nginx-static-location/ {
alias /var/www/vhosts/somedomain/httpdocs/;
add_header X-Powered-By PleskLin;
internal;
}
# CSS and Javascript
location ~* \.(css|js)$ {
access_log off;
log_not_found off;
add_header Pragma public;
add_header Cache-Control "max-age=30d,public";
expires 30d;
}
# Images
location ~* \.(ico|jpg|webp|jpeg|gif|png|bmp|zip|woff)$ {
access_log off;
log_not_found off;
add_header Pragma public;
add_header Cache-Control "public, max-age=1y";
expires 1y;
}
}
пример: http: //somesite/images/siteimages/category_tiles_109x109/xgold-hollow-cross-tile.gif.pagespeed.ic.EbboFWD5Wz.png (5 минут)
Я думаю, вы не скомпилировали headers_more в Nginx. Чтобы подтвердить, добавили ли вы это в свой блок местоположения изображения
add_header XYZ "TESTING";
Опубликуйте вывод «curl -i», или вы можете увидеть заголовки с помощью Firefox и плагина «Live HTTP Headers». Также отбросьте "прагму", она старая и ненужная. В принципе, скопируйте мой блок ниже, по крайней мере, те части, которые вам нужны.
Если вам нужны инструкции по сборке Nginx с headers_mode, см. Мой учебник Вот.
Для справки вот мой собственный блог о местоположении, в котором есть нечто подобное
# Cache images on the client. Don't log errors or access. Block hotlinking.
location ~* \.(jpg|jpeg|png|gif|css|js|ico)$ {
log_not_found off; access_log off;
valid_referers none blocked server_names ~($host) ~(googleusercontent|google|bing|yahoo);
if ($invalid_referer) {
rewrite (.*) /stop-stealing-images.png redirect;
# drop the 'redirect' flag for redirect without URL change (internal rewrite)
}
# Set up caching - 8 days for static resources. Remove the old unnecessary Pragma and hide the server version
more_clear_headers "Cache-Control";
add_header Cache-Control "public, max-age=691200, s-maxage=691200";
more_clear_headers Server; more_clear_headers "Pragma"; more_clear_headers "Expires";
# add_header Z_LOCATION "wpmu STATIC RESOURCES REGEX"; add_header URI $uri; # Nginx Debugging
}