2013-10-22 27 views
13

静的ファイルをキャッシュするルールを定義する際に問題が発生します。私はこの解決策を見つけました:NGINXキャッシュの静的ファイル

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/; 
    } 
} 

がいいだろう。

乾杯、 Szop

+0

はあなたが完全なコンフィギュレーションを投稿気にしませんか? – alfredocambera

答えて

28

はあなたの他の場所の前にこれを置く:

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|svg)$ { 

     access_log off; 
     expires 30d; 
     ## 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; 
    } 
+1

このインスタンスでキャッシュをクリアするにはどうすればよいですか? nginxを再起動するのと同じくらい簡単だろうか? – hamstar

+2

この例はサーバーサイドキャッシュではなく、ブラウザキャッシュを管理します。サーバー上の静的ファイルを更新する場合は、Shift + F5/ctrl + F5 –

+0

でリロードしてブラウザのキャッシュをクリアすることができます。クライアントの新しいファイルをすぐに更新するか、期限切れになるまで待たなければなりませんか? – nXqd

関連する問題