![](/img/trans.png)
[英]Configure Nginx to serve Static files of Angular and also reverse proxy for express
[英]Caching static files isn't working when using nginx as a reverse proxy
我在nginx后面運行了ExpressJS應用程序,並將其設置為反向代理。 我還為圖像,js和css等靜態文件設置了一些緩存。 問題是,它們似乎並沒有真正在緩存。 對這些文件的請求始終返回200狀態代碼,而不是304。如果我檢查開發工具中的標頭,則Expires標頭永遠不會與上次請求文件時的標頭相同。 它始終會重置為新值。 我的配置中缺少什么嗎?
我正在使用nginx 1.4.4。
謝謝。
upstream stats {
ip_hash;
server localhost:3000;
}
server {
server_name app.example.com;
access_log /var/log/nginx/stats.access.log;
error_log /var/log/nginx/stats.error.log debug;
root /srv/www/stats/public;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarder-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://stats;
proxy_redirect off;
}
location ~* .(ico|css|js|gif|jpg|png)$ {
expires 7d;
log_not_found off;
}
}
您在標頭中看到的到期時間隨每個請求而變化是正常的,因為,正如doc所說 :
“ Expires”字段中的時間計算為當前時間與指令中指定的時間之和。
(添加了強調。)當前時間是請求的時間。 由於當前時間隨每個請求而變化,因此到期時間也隨之變化。 如果您要使用的是文件的最后修改時間,那么您將使用expires modified 7d
。
現在,通過將到期日期設置為未來的7天,可以告訴瀏覽器不要再在到期前再次檢查。 當瀏覽器在7天內再次檢查時,您將獲得304。 如果希望瀏覽器始終檢查何時嘗試再次加載資源,則set expires 0
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.