Проблема с отображением изображения Nginx после оптимизации
Я сделал несколько оптимизаций, используя gtmetrix для улучшения производительности веб-сайта. Например, включение сжатия gzip и т. Д.
Когда я пытаюсь протестировать сайт с помощью онлайн-сервисов, таких как browserling.com, изображения не отображаются.
Когда я пытаюсь подключиться с сервера. Как и 192.168.1.xx, работает нормально.
Связанная часть /etc/nginx/nginx.conf выглядит так:
##
# Gzip Settings
##
gzip on;
gzip_vary on;
gzip_proxied any;
# gzip_comp_level 6;
# gzip_buffers 16 8k;
# gzip_http_version 1.1;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
И в /etc/nginx/sites-enabled/programlama.tk я добавил эту часть.
location ~* \.(jpg|jpeg|png|gif|ico)$ {
expires 365d;
}
location ~* \.(css|js)$ {
expires 30d;
}
location ~* \.(pdf)$ {
expires 30d;
}
Обновить:
Я подозреваю, что проблема в блоке сервера в местоположении истекает часть.
server {
server_name programlama.tk;
location /static {
limit_except GET HEAD POST {
deny all;
}
include yasaklananlar.conf;
# alias
}
location / {
limit_except GET HEAD POST {
deny all;
}
include yasaklananlar.conf;
include proxy_params;
# proxy_pass
}
location ~* \.(jpg|jpeg|png|gif|ico)$ {
expires 365d;
}
location ~* \.(css|js)$ {
expires 30d;
}
location ~* \.(pdf)$ {
expires 30d;
}
# server settings
}
Если я удаляю расположение истекает часть в блоке сервера и перезапускаю сервер Nginx, он отображает изображения в порядке.
1 ответ
Nginx выбирает одно местоположение для обработки запроса.
Так что, когда новое регулярное выражение location
добавлен для установки expires
значение на расширение, оно ломает как ваши location /static {...}
а также location / {...}
конфигурации.
Как альтернатива использованию location
установить expires
Вы можете использовать map
вместо. Смотрите этот документ для деталей.
Например:
map $request_uri $expires {
default off;
~*\.(jpg|jpeg|png|gif|ico)(\?|$) 365d;
~*\.(css|js|pdf)(\?|$) 30d;
}
server {
...
expires $expires;
location /static { ... }
location / { ... }
...
}