2016-09-21 93 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

相关问题