ошибки с 400 кодом логгируются в чужой access.log

ddr400 nginx-forum на nginx.us
Ср Июл 4 12:05:43 UTC 2012


Всем привет.

Столкнулся со странной проблемой на
одном из фронтэндов. Есть несколько
вируальных хостов, для упрощения
возьмем host1 и host2

При запросах host1, ошибки вида:

91.143.38.134 - - [04/Jul/2012:15:27:34 +0400] "-" 400 0 "-" "-" "-"
188.19.97.96 - - [04/Jul/2012:15:27:34 +0400] "-" 400 0 "-" "-" "-"
85.117.224.56 - - [04/Jul/2012:15:27:34 +0400] "-" 400 0 "-" "-" "-"
217.132.37.176 - - [04/Jul/2012:15:27:34 +0400] "-" 400 0 "-" "-" "-"

пишутся в access лог host2

Причем в error логе host2 это отображается
так

2012/07/04 15:27:34 [info] 1892#0: *171499 client prematurely closed
connection while reading client request line, client: 91.143.38.134,
server: host2
2012/07/04 15:27:34 [info] 1886#0: *167326 client prematurely closed
connection while reading client request line, client: 188.19.97.96,
server: host2
2012/07/04 15:27:34 [info] 1890#0: *173368 client prematurely closed
connection while reading client request line, client: 85.117.224.56,
server: host2
2012/07/04 15:27:34 [info] 1890#0: *171609 client prematurely closed
connection while reading client request line, client: 217.132.37.176,
server: host2

Если я правильно понимаю, то это
свидетельствует о коннекте клиента к
host2 с последующим закрытием соединения?
Но на host1 никаких упоминаний о host2 нет.
Юзерагенты у клиентов разные.
Пользователи легитимные. host1 при
запросе отдал им 200 код.

Конфиг host1. Некоторые локейшены я убрал,
поскольку они вида location /some { root
/home/www/host1; index index.htm;} и только затрудняют
чтение конфига.

        server {
                listen <ip>;
                server_name host1 www.host1;

                access_log /var/log/nginx/frontend-host1/access.log
main;
                error_log  /var/log/nginx/frontend-host1/error.log
notice;

                root /home/www/host1;
                ssi on;
                gzip_static off;
                gzip off;
                charset windows-1251;
                sendfile on;
                ssi_value_length 200k;

                include /etc/nginx/deny.conf;

                location / {

                        proxy_cache main-cache;
                        proxy_cache_valid 200 302 301 304 3s;
                        proxy_cache_key
"$request_method|$http_if_modified_since|$http_if_none_match|$host|$uri";
                        proxy_hide_header "Set-Cookie";
                        proxy_ignore_headers "Cache-Control" "Expires";

                        proxy_cache_lock on;

                        include /etc/nginx/proxy_params;

                        proxy_set_header Host "host1";
                        proxy_pass http://<backend ip>;
                }

Конфиг host2 приводить смысла нет,
поскольку, если например убираешь его
из конфигурации, то сообщения о 400
ошибке начинают логироваться в другой
hostN с другой конфигурацией.

Может, уважаемое сообщество подскажет,
в каком направлении копать?

Спасибо.

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,228275,228275#msg-228275



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