0
我有nginx/1.4.2 + Apache,我想用nginx緩存所有的請求。這個位置規則.PHP創建緩存文件,但不適合的.html:爲什麼nginx不會緩存帶.html擴展名的腳本?
location ~* \.(html|php)$ {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host my-host-name.com;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
add_header cache "html";
proxy_cache default;
proxy_cache_min_uses 1;
proxy_cache_valid 1d;
proxy_cache_key "$host|$request_uri";
proxy_hide_header "Set-Cookie";
proxy_ignore_headers "Cache-Control" "Expires";
}
頭「高速緩存」加入到反應,所以位置工作。
我試圖用「位置/」 - 請求腳本存儲在緩存PHP擴展(且無任何)。對於帶有.html擴展名的腳本,nginx不會創建緩存。
我無法找到nginx忽略帶.html擴展名的腳本的原因。將腳本重命名爲.php - 這不是方法。我有CMS,並且它爲使用.html的網頁製作可讀的URL,Google索引中有數千頁,現在重命名會導致網站重新索引。
是的!因爲在配置我有: proxy_hide_header「Set-Cookie」; 所以,在nginx之後,我們看不到「Set-Cookie」頭是否存在。如果CMS嘗試發送cookie,nginx將禁用緩存 –