2017-10-27 8 views
1

を無効にする場合nginxのは、私はcssファイルのキャッシュを避けるために、nginxの中で次のディレクティブを実装しようとしたCSSファイルに400応答を与える:キャッシュ

upstream turntown_stream { 
    ip_hash; 
    server turntown_host:9443; 
} 

location ~* \.(?:css)$ { 
    root /data/nginx/html; 
    expires 0; 
} 

location/{ 
    root /data/nginx/html; 
    index index.html index.htm; 
} 

location /turntown/ { 
proxy_cache_bypass $http_upgrade; 
proxy_pass https://turntown_stream/turntown/; 
# Web sockets 
proxy_http_version 1.1; 
proxy_set_header Upgrade $http_upgrade; 
proxy_set_header Connection $connection_upgrade; 
} 

しかし、私は上記のディレクティブを適用しようとするたびに、任意のCSSファイルhttps:// {DOMAIN} .com/turntownアドレスが入力された後にWebブラウザーに到着し、404応答が返されます。

誰かが間違っていることを教えてください。

答えて

0

nginxは、1つを選択する。location~process a request

.cssで終わるURIを処理する場合、新しいlocation ~* \.(?:css)$ブロックがlocation /turntown/ブロックよりも優先されます。

したがって、/turntown/で終わり、.cssで終わるURIはローカルファイルとして処理され、要求はもはや上流に送信されません。

expiresディレクティブは、mapと組み合わせて使用​​できます。詳細は、this documentを参照してください。例えば

map $request_uri $expires { 
    default   off; 
    ~*\.(css)(\?|$) 0; 
} 
map

ディレクティブがhttpブロック内に配置されています。 expiresディレクティブがserverブロック内に配置される

expires $expires; 

場合、それはlocationがそれらを処理するために使用されているに関わらず全て一致するURIに適用されます。

関連する問題