2016-09-21 23 views
1

我有了如何關閉訪問日誌記錄的JSON請求,使用nginx的/ uwsgi

location/{ 
    # see http://uwsgi-docs.readthedocs.org/en/latest/Nginx.html 
    uwsgi_pass uwsgi_devcluster; 
    include uwsgi_params; 
} 

一個nginx.conf文件,我想確保JSON請求該uwsgi服務器不會被記錄,因爲每分鐘都有負載。所以我試了

location/{ 
    location ~ \.json$ { 
     access_log off; 
    } 
    # see http://uwsgi-docs.readthedocs.org/en/latest/Nginx.html 
    uwsgi_pass uwsgi_devcluster; 
    include uwsgi_params; 
} 

但是,這給那些網頁404錯誤。我應該如何設置?

回答

1

location塊不能像那樣工作。詳情請參閱this document

您可以定義兩個位置塊,這兩個位置塊都必須帶有必要的uwsgi_pass指令。最簡單的解決辦法是:

location/{ 
    uwsgi_pass uwsgi_devcluster; 
    include uwsgi_params; 
} 
location ~ \.json$ { 
    access_log off; 
    uwsgi_pass uwsgi_devcluster; 
    include uwsgi_params; 
} 

或者,你可以使用map指令設置一個變量設置access_log指令的if=condition。詳情請參閱this document

+0

謝謝。我還有其他的位置塊,我仍然想保持效果。所以我可以在'location /'塊中嵌套.json匹配,但只需重複uwsgi_pass etc指令?像'location/{location〜\ .json $ {access_log off; uwsgi_pass uwsgi_devcluster; 包括uwsgi_params;} uwsgi_pass uwsgi_devcluster; 包括uwsgi_params; }' – user2667066

+0

這應該工作。您可能只需要嵌套位置塊中的access_log和uwsgi_pass。我相信uwsgi_params將從周圍的塊繼承。 –

+0

事實上你是對的。在塊內部只需要'access_log'和'uwsgi_pass'設置。 – user2667066

相關問題