access_log & try_files

Ruslan Ermilov ru at nginx.com
Wed Nov 7 12:52:07 UTC 2012


On Wed, Nov 07, 2012 at 07:10:54AM -0500, kron wrote:
> Доброго дня!
>  
> Возникла надобность логировать определенные запросы в отдельный файл, но
> никак не могу этого добиться.
>  
> Вот вырезка из конфига:
>  
>  
>         location        ~ ^/(?:[A-Z][[:alnum:]]+)/ {
>                 location        ~ "(?x)
>                 ^/
>                 (?<dirb>[A-Z][[:alnum:]]+)
>                 (?:/
>                         (?<dira>[A-Z][[:alnum:]]*)
>                 )?/
>                 (?<cls>[A-Z][[:alnum:]]+)/?
>                 (?<act>[a-z][[:alnum:]]*)?/?
>                 (?<oid>\d+)?
>                 (?<v>\.[a-z][[:alpha:]]+)?/?
>                 (?:\?
>                         (?<nine>[^ ?/]*)
>                 )?$" {
>                         # здесь в виде локейшена решил добавить лог файл
> куда нужно писать информацию о запросах типа .api и .wsdl после чего
> отправить на обработку php скрипту.
>                         location        ~ \.(api|wsdl)$ {
>                                 access_log     
> /var/log/nginx/a.sales_api.log;
>                                 try_files       $uri
> /run.php?__dirb=$dirb&__dira=$dira&__cls=$cls&__act=$act&__oid=$oid&__v=$v&$nine&$args;
>                                 }
>                         try_files       $uri
> /run.php?__dirb=$dirb&__dira=$dira&__cls=$cls&__act=$act&__oid=$oid&__v=$v&$nine&$args;
>                 }
>         }
>  
> запрос обрабатывается, но log файл при этом остается пустым.
> Подскажите пожалуйста как лучше всего решить этот вопрос.
>  
> Благодарю!

http://nginx.org/ru/docs/http/ngx_http_log_module.html
: Логи записываются в контексте location’а, где заканчивается обработка.
: Это может быть location, отличный от первоначального, если в процессе
: обработки запроса происходит внутреннее перенаправление.

http://nginx.org/r/try_files/ru
: [...] использует для обработки запроса первый найденный файл, причём
: обработка делается в контексте этого же location’а.  [...] если ни один
: файл не найден, то делается внутреннее перенаправление на uri, заданный
: последним параметром.



Подробная информация о списке рассылки nginx-ru