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