2015-12-21 37 views
1

我爲我的NodeJS應用程序安裝了NGINX反向代理服務器。只爲特定文件類型展開位置

我的位置塊基本上是這樣的

location/{ 
    proxy_pass http://localhost:3000; 
    gzip on; 
    gzip_static on; 

    expires 86400; 
    add_header Cache-Control "public"; 
} 

不,我想

expires: max; 

在擴大這個位置對於特定的文件類型(JS,CSS,PNG,..)如果我不能覆蓋最初的expires標題,我會很好地將它留在位置塊中。


我的靜態文件都位於/static/..,我只是能安裝第二塊位置,但這會產生一些開銷(重新設置proxy_pass等)。所以我很好奇,如果我可以擴展塊

回答

0

您將需要第二個位置塊作爲proxy_pass指令(所有處理程序,爲此,請參閱this post)不會被嵌套的位置塊繼承。

如果您希望簡化配置而不復制粘貼其他配置,請考慮使用include指令,並將位置塊的常見方面置於外部文件中。

這在技術上是可能的,你可以通過添加if聲明一樣逃脫只是一個位置塊:

if ($request_uri ~ ^/static) { 
    expires max; 
} 

但按照Nginx的維基If is Evil頁面,你要測試的這款和非常仔細地。通過調用正則表達式引擎,這也涉及更多的開銷;更好的選擇是兩個位置塊。

相關問題