3
這個問題是關於只緩存nginx,而不是緩存頭和瀏覽器緩存。讓nginx緩存文件只取決於文件名(而不是完整路徑)
我操作,顯示上的形式
http://my-server/details/<id>/
其中ID是該項目的唯一標識符的網址項目的詳細信息的應用程序。儘管生成的HTML頁面是自動生成的,並且對項目來說是唯一的,但該頁面相對包含其他JavaScript和CSS文件。這些文件是靜態的,並且而不是取決於項目ID。該應用程序非常慢,我希望nginx緩存任何可能的東西。
nginx充當反向代理。是否可以將所有.js和.css子請求的proxy_cache_key屬性設置爲僅文件名(省略了url中的ID)?
實施例:訪問http://my-server.tld/details/abc/style.css第一和http://my-server.tld/details/def/style.css之後應該因此導致高速緩存命中。但訪問http://my-server.tld/details/abc/和http://my-server/details/def/事後不應該(生成的HTML取決於id)。
這就是我作爲基本配置的思維
server {
listen 80;
server_name my-server.tld;
location/{
# root, doesn't matter
}
location /details {
# request to non-asset, cache as usual
}
location ~ ^/details/[a-z0-9]+/[a-z0-9]+\.(js|css)$ {
# request to static asset, use filename only as cache key
}
}
你的意思是「應用程序很慢」? HTML請求很慢,或者css請求也很慢?如果css請求緩慢 - 爲什麼?它是由應用程序生成的,還是靜態文件? –
@Terra應用程序運行在不足的虛擬機和遺留應用程序服務器上(我可能不會更改它)。每個請求都很慢(延遲和傳輸速度),甚至像CSS這樣的靜態資源。 – muffel