Re: логирование location
Sergey Shepelev
temotor на gmail.com
Ср Июн 23 20:54:10 MSD 2010
2010/6/23 Igor V. Fatkulin <ingvar at westsib.ru>:
>
> Всем доброго времени суток.
>
> Пытаюсь сделать запись средствами nginx логирование обращений к
> определенному location, пытался сделать что-то типа:
>
> location ~ ^/cgi-bin/script.cgi\?(.+)$ {
> log_format scriptlog '$http_referer';
> access_log logs/$1.log scriptlog;
> }
>
> по итогу либо лог не создается, либо такое ощущение, что локейшн
> начинает на себя сгребать все запросы к скрипту, в результате все
> перестает работать.
>
Локейшны не задают "дополнительную" обработку запроса. Они задают
единственную обработку.
Что-то вроде дополнительной обработки делают с помощью if, но
поскольку он очень хитрый, рекомендуется всеми силами избегать
использования if.
> Бэкендом стоит апач, который лопатит php и cgi.
>
> Как правильно составить описание локейшна, чтобы работа не прерывалась
> и писались нужные логи?
>
location ~ ^/cgi-bin/script.cgi\?(.+)$ {
log_format scriptlog '$http_referer';
access_log logs/$1.log scriptlog;
proxy_pass http://somehost.ru:81/;
proxy_set_header X-Real-IP $remote_addr;
}
>
> Кусок рабочего конфига
> location / {
> proxy_pass http://somehost.ru:81/;
> proxy_set_header X-Real-IP $remote_addr;
> }
>
> error_page 500 502 503 504 /50x.html;
> location = /50x.html {
> root html;
> }
>
> location ~ /\.ht {
> deny all;
> }
>
> location ~* ^.+.(jpg|jpeg|gif|swf|ico|css|zip|tgz|gz|rar|bz2|doc|xls|iso|exe|pdf|ppt|txt|tar
Здесь ещё expires может быть весьма полезен. (аккуратно)
> root /path/to/webroot;
> }
>
Подробная информация о списке рассылки nginx-ru