On Tue, 25 Jul 2006, Andrew Velikoredchanin wrote:
У меня в nginx на фронтэнде (и на фронтэнде и на бэкенде тоже nginx
0.3.54) логе много записей типа:
2006/07/25 12:55:07 [error] 21764#0: *1976588 writev() failed (110:
Connection timed out) while sending request to upstream, client:
86.144.57.51, server: server.net, URL: "/thumbnails/50989489.t.jpg",
upstream: "http://192.168.0.10:81/thumbnails/50989489.t.jpg", host:
"server.net", referrer: "..."
Активность обращений очень высокая.
Вопрос такой - какой именно таймоут надо поправить в конфиге что-бы не
было таких ошибок?
Сейчас стоит:
proxy_connect_timeout 3000;
proxy_send_timeout 3000;
proxy_read_timeout 3000;
Может быть имеет смысл какие-то кэши увеличить?
nginx не устанавливает kernel-level таймауты.
Если бы сработал один из вышеописанных таймаутов, то сообщение было бы
таким: "... upstream timed out (110: Connection timed out) while sending
request to upstream ...". В данном же случае ошибку ETIMEDOUT вернул
сискол. Насколько я вижу по коду ошибки, это Линукс. На бэкенде нужно
поставить
/proc/sys/net/ipv4/tcp_rfc1337 0
и, возможно,
/proc/sys/net/ipv4/tcp_tw_recycle 1
Вторая проблема (возможно связана с первой) - по этому локэйшену иногда
вместо существующего файла выдается 404. При повторном обращении файл
выдается нормально. Такое стало появляться после включения keepalive на
фронтэнде.
Как выгдляит строка в error_log'е про 404 ?
Игорь Сысоев
http://sysoev.ru