この質問は、キャッシュヘッダーとブラウザキャッシュについてではなく、nginxのキャッシュについてのみです。(完全なパスの代わりに)ファイル名だけに応じてnginxキャッシュファイルを置きます。
Iは、IDアイテムの一意な識別子である形態
http://my-server/details/<id>/
のURLの項目の詳細を表示するアプリケーションを操作しています。生成されるHTMLページは自動生成され、アイテムに固有のものですが、ページには他のJavaScriptファイルやCSSファイルが比較的含まれています。これらのファイルは静的であり、ではなく、はアイテムIDによって異なります。アプリケーションは非常に遅く、私は可能な限り、キャッシュにnginxします。
nginxはリバースプロキシとして機能します。すべての.jsおよび.cssサブリクエストのファイル名を(URLのidを省略して)のみに設定することは可能ですか?
例:最初とhttp://my-server.tld/details/def/style.cssはその後したがって、キャッシュヒットになるはずであるhttp://my-server.tld/details/abc/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アプリケーションがunderdimensioned VMとレガシーアプリケーションサーバ上で動作する(と私はそれを変更することはできません)。各要求は遅い(待ち時間と伝送速度)、cssのような静的リソースでさえあります。 – muffel