ошибки с 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