connection to upstream (PHP FastCGI) timed out
umask
umask at yandex.ru
Wed Aug 29 09:32:21 MSD 2007
Доброе утро,
имеется такая схема:
[internet]---[nginx]---[PHP FastCGI]---[MySQL]
~~~~~~~~~~~~~~~~~~~~~\~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~\_[imap4|pop3]~~~~~~~~~~~~
В данной схеме nginx представляет собой http-сервер c отдачей php на обработку fast-cgi серверу php. Помимо http-сервера nginx выполняет роль imap4/pop3-прокси-сервера на imap4/pop3-бэкэнды.
Как и полагается используется внешний http-сервер авторизации, по которому nginx выясняет легитимность юзера и юзерский бэкенд. http-сервер авторизации - этот тот же самые nginx, код авторизатора написан на php, исполняется он на [PHP FastCGI] сервере, этот код обращается к [MySQL].
Во всей это связке все работает хорошо, кроме [PHP FastCGI].
Странность проявила себя в первую же ночь, как только на эту схему дали небольшую нагрузку (порядка 10 активных подключений в секунду (т.е. не keep-alived, а именна юзеров, которые авторизуются, качают почту по имапу\попу).
В 2 часа 16 минут ночи [PHP FastCGI] сервер перестал обрабатывать запросы.
nginx отдавал gateway timeout.
Вот некоторые выдержки из логов.
логи сервера авторизации:
127.0.0.1 - - [29/Aug/2007:02:13:49 +0400] GET /auth.php HTTP/1.0 "200" 1 "-" "-" "-"
127.0.0.1 - - [29/Aug/2007:02:14:41 +0400] GET /auth.php HTTP/1.0 "200" 1 "-" "-" "-"
127.0.0.1 - - [29/Aug/2007:02:16:42 +0400] GET /auth.php HTTP/1.0 "200" 1 "-" "-" "-"
127.0.0.1 - - [29/Aug/2007:02:16:47 +0400] GET /auth.php HTTP/1.0 "200" 1 "-" "-" "-"
127.0.0.1 - - [29/Aug/2007:02:17:52 +0400] GET /auth.php HTTP/1.0 "499" 0 "-" "-" "-"
127.0.0.1 - - [29/Aug/2007:02:18:26 +0400] GET /auth.php HTTP/1.0 "499" 0 "-" "-" "-"
127.0.0.1 - - [29/Aug/2007:02:18:26 +0400] GET /auth.php HTTP/1.0 "499" 0 "-" "-" "-"
127.0.0.1 - - [29/Aug/2007:02:22:48 +0400] GET /auth.php HTTP/1.0 "499" 0 "-" "-" "-"
127.0.0.1 - - [29/Aug/2007:02:23:26 +0400] GET /auth.php HTTP/1.0 "499" 0 "-" "-" "-"
127.0.0.1 - - [29/Aug/2007:02:23:26 +0400] GET /auth.php HTTP/1.0 "499" 0 "-" "-" "-"
127.0.0.1 - - [29/Aug/2007:02:26:16 +0400] GET /auth.php HTTP/1.0 "499" 0 "-" "-" "-"
127.0.0.1 - - [29/Aug/2007:02:26:49 +0400] GET /auth.php HTTP/1.0 "499" 0 "-" "-" "-"
127.0.0.1 - - [29/Aug/2007:02:28:26 +0400] GET /auth.php HTTP/1.0 "499" 0 "-" "-" "-"
access.log http-сервера:
XX.XX.XX.XX - - [29/Aug/2007:02:16:25 +0400] GET /*REMOVED* HTTP/1.1 "200" 2993 "*REMOVED*" "Opera/9.10 (Windows NT 5.1; U; ru)" "-"
XX.XX.XX.XX - - [29/Aug/2007:02:16:27 +0400] GET /*REMOVED* HTTP/1.1 "200" 3010 "*REMOVED*" "Opera/9.10 (Windows NT 5.1; U; ru)" "-"
XX.XX.XX.XX - - [29/Aug/2007:02:16:30 +0400] GET /*REMOVED* HTTP/1.1 "200" 4779 "*REMOVED*" "Opera/9.10 (Windows NT 5.1; U; ru)" "-"
XX.XX.XX.XX - - [29/Aug/2007:02:16:47 +0400] GET /*REMOVED* HTTP/1.1 "499" 0 "*REMOVED*" "Opera/9.10 (Windows NT 5.1; U; ru)" "-"
XX.XX.XX.XX - - [29/Aug/2007:02:16:54 +0400] GET /*REMOVED* HTTP/1.1 "499" 0 "*REMOVED*" "Opera/9.10 (Windows NT 5.1; U; ru)" "-"
XX.XX.XX.XX - - [29/Aug/2007:02:16:59 +0400] GET /*REMOVED* HTTP/1.1 "499" 0 "*REMOVED*" "Opera/9.10 (Windows NT 5.1; U; ru)" "-"
XX.XX.XX.XX - - [29/Aug/2007:02:17:01 +0400] GET /*REMOVED* HTTP/1.1 "499" 0 "*REMOVED*" "Opera/9.10 (Windows NT 5.1; U; ru)" "-"
error.log http-сервера:
2007/08/29 02:18:14 [error] 1186#0: *5304 upstream timed out (110: Connection timed out) while reading response header from upstream, client: XX.XX.XX.XX, server: XXX, URL: "/*REMOVED*", upstream: "fastcgi://127.0.0.1:9000", host: "rupochta.ru", refer
rer: "*REMOVED*"
...
2007/08/29 02:20:04 [info] 6213#0: *6892 client closed prematurely connection, so upstream connection is closed too while sending request to upstream, client: XX.XX.XX.XX, server: XX, URL: "/", upstream: "fastcgi://127.0.0.1:9000", host: "XXX"
...
2007/08/29 02:21:55 [info] 6213#0: *6902 client closed prematurely connection, so upstream connection is closed too while sending request to upstream, client: XX.XX.XX.XX, server: XXX, URL: "/", upstream: "fastcgi://127.0.0.1:9000", host: "XXX"
в error.log'е с 2 часов 17 минут только такие сообщения.
в access.log'е с 2 часов 17 минут все обращения имеют http код 499.
[root at mail]# cat /etc/redhat-release
CentOS release 5 (Final)
[root at mail]# uname -a
Linux massmail-1 2.6.18-8.1.8.el5 #1 SMP Tue Jul 10 06:50:22 EDT 2007 i686 i686 i386 GNU/Linux
[root at mail]# rpm -qa | grep php
...
php-5.1.6-12.el5
PHP FastCGI пускается так (под непривелигированном пользователем):
# Tcp-port to bind php-cgi on
FCGIPORT1="9000"
# IP to bind php-cgi on
FCGIADDR1="127.0.0.1"
# Number of PHP children to spawn
PHP_FCGI_CHILDREN1=20
# Number of request before php-process will be restarted
PHP_FCGI_MAX_REQUESTS1=1024
# Path to the php-cgi binary and parameters
COMMAND="/usr/bin/php-cgi -q -b $FCGIADDR1:$FCGIPORT1 -c $CONFIG1 &"
Во время проблемы php-cgi в списке процессор присутствовали, процессор не потребляли.
У кого-нибудь есть идеи из-за чего себя так странно повёл FastCGI-сервер?
--
Ilyas
More information about the nginx-ru
mailing list