2016-09-21 5 views
1

У меня есть файл, который имеет nginx.confКак отключить ведение журнала доступа для запросов JSon, используя Nginx/uwsgi

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

, и я хочу, чтобы убедиться, что 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 установить переменную для установки if=condition из access_log директивы. См. this document.

+0

Спасибо. У меня есть другие блоки местоположения, над которыми я все еще хочу продолжать действовать. Могу ли я вложить гнездо .json в блок 'location /', но просто повторить директивы 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

 Смежные вопросы

  • Нет связанных вопросов^_^