Ubuntu
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 伺服器,它會很好地顯示圖像。
Nginx 選擇一個位置來處理請求。
因此,當添加新的正則表達式
location
來設置expires
擴展的值時,它會破壞您的配置location /static {...}
和location / {...}
配置。作為使用
location
to set的替代方法expires
,您可以使用 amap
代替。有關詳細資訊,請參閱此文件。例如:
map $request_uri $expires { default off; ~*\.(jpg|jpeg|png|gif|ico)(\?|$) 365d; ~*\.(css|js|pdf)(\?|$) 30d; } server { ... expires $expires; location /static { ... } location / { ... } ... }