静的ファイルをキャッシュするルールを定義するのに問題があります。私はこの解決策を見つけました:
location ~* \.(ico|js|css|png|gif|jpe?g)$ {
expires 7d;
}
実際に私が必要なもののように見えます。問題は、このコードをNGINX.confに含めると、静的ファイルが配信されなくなり、サイトが空白になることです。この結果を引き起こす可能性のあるアイデア/ヒントはありますか?追加する必要があるかもしれませんが、静的ファイルは異なるディレクトリに配布されます:/。 NGINXの構成ファイルは次のようになります。
server {
server_name bla.domain.com;
listen 80;
root /var/repo/;
location / {
default_type text/html;
index index.html;
if ($request_method !~ ^(GET)$ ) {
return 444;
}
if ($http_user_agent ~* LWP::Simple|BBBike|wget) {
return 403;
}
if ( $http_referer ~* (babes|forsale|girl|jewelry|love|nudit|organic|poker|porn|sex|teen) ) {
return 403;
}
}
location /bf/football/ {
alias /var/repos/f20;
}
location /bf/f20/ {
alias /var/repo/f20;
}
location /bf/Zoo/ {
alias /var/repo/Zoo/;
}
location /kbloader/ {
alias /var/repo/kbloader/;
}
}
誰かがこれで私を助けたり、正しい方向に私を向けることができればいいでしょう。
乾杯、ソップ
これを他のロケーションブロックの前に配置します。
location ~* \.(?:ico|css|js|gif|jpe?g|png)$ {
expires 30d;
add_header Vary Accept-Encoding;
access_log off;
}
うまくいくはずです。
これも使用できます:
## All static files will be served directly.
location ~* ^.+\.(?:css|cur|js|jpe?g|gif|htc|ico|png|html|xml|otf|ttf|eot|woff|woff2|svg)$ {
access_log off;
expires 30d;
add_header Cache-Control public;
## No need to bleed constant updates. Send the all Shebang in one
## fell swoop.
tcp_nodelay off;
## Set the OS file cache.
open_file_cache max=3000 inactive=120s;
open_file_cache_valid 45s;
open_file_cache_min_uses 2;
open_file_cache_errors off;
}
以下に示すように、nginx構成ファイルのサーバーセクションの前にこれを配置します。
. . .
# Expires map
map $sent_http_content_type $expires {
default off;
text/html Epoch;
text/css max;
application/javascript max;
~image/ max;
}
server {
listen 80 default_server;
listen [::]:80 default_server;
expires $expires;
. . .
〜imageはすべての種類の画像を処理します(ハードコーディングする代わりに)
nginxキャッシングの処理方法の詳細については、 link を参照してください