Помогите разобраться с ошибкой: 504 Bad Gataway

12
[Удален]
8689

Стоит Centos 5, Nginx, панель ispmanager.

Стала постоянно выскакивать ошибка 504 Bad Gataway, в лог пишется ледующее:

1) 2010/07/03 15:35:55 [error] 21517#0: *3164015 upstream timed out (110: Connection timed out) while reading response header from upstream

2) 2010/07/03 15:35:55 [error] 21516#0: *3164015 upstream timed out (110: Connection timed out) while reading response header from upstream

3) 2010/07/03 15:35:55 [error] 21517#0: *3164023 upstream timed out (110: Connection timed out) while reading response header from upstream

При этом доступно более 70% свободных ресурсов ресурсов. С чем может быть связана эта проблема, и как ее устранить? Какие настройки нужно подправить, для решения этой ошибки?

M
На сайте с 01.12.2009
Offline
235
#1

пишите посмотрем

Администратор Linux,Freebsd. построения крупных проектов.
Andreyka
На сайте с 19.02.2005
Offline
822
#2

Дать больше ресурсов бекенду (апачу)

Не стоит плодить сущности без необходимости
[Удален]
#3

Andreyka, как это можно сделать? Сейчас стоит:

В настройках PHP:

Время выполнения 120с

Лимит памяти 32 мб

Макс.размер запроса 32

Макс.размер файлов: 32

В /etc/httpd/conf/httpd.conf выставлено следующее:

# prefork MPM

# StartServers: number of server processes to start

# MinSpareServers: minimum number of server processes which are kept spare

# MaxSpareServers: maximum number of server processes which are kept spare

# ServerLimit: maximum value for MaxClients for the lifetime of the server

# MaxClients: maximum number of server processes allowed to start

# MaxRequestsPerChild: maximum number of requests a server process serves

<IfModule prefork.c>

StartServers 8
MinSpareServers 5
MaxSpareServers 20
ServerLimit 256
MaxClients 256
MaxRequestsPerChild 4000
</IfModule>

# worker MPM

# StartServers: initial number of server processes to start

# MaxClients: maximum number of simultaneous client connections

# MinSpareThreads: minimum number of worker threads which are kept spare

# MaxSpareThreads: maximum number of worker threads which are kept spare

# ThreadsPerChild: constant number of worker threads in each server process

# MaxRequestsPerChild: maximum number of requests a server process serves

<IfModule worker.c>
StartServers 2
MaxClients 150
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>

PS. Ошибка выскакивает как на сайтах использующих PHP, так и на сайтах только с HTML.

K
На сайте с 09.08.2007
Offline
134
#4
Andreyka
На сайте с 19.02.2005
Offline
822
#5

Плавно повышать циферки наугад или попросить специалиста

[Удален]
#6

Andreyka, а какие именно циферки поднимать. И чем верхний столбец отличается от нижнего? Часть значений же совпадает. Но почему-то они разные.

M
На сайте с 16.09.2009
Offline
278
#7
chekip:
Andreyka, а какие именно циферки поднимать. И чем верхний столбец отличается от нижнего? Часть значений же совпадает. Но почему-то они разные.

Это настройки для разных MPM-модулей. У Вас работает какой-то один, скорее всего prefork (узнать точно можно например командой /usr/sbin/httpd -l).

Смотрите в документации апача что означают эти "циферки":

http://httpd.apache.org/docs/2.2/

Абонементное сопровождение серверов (Debian) Отправить личное сообщение (), написать письмо ().
bugsmoran
На сайте с 18.02.2010
Offline
223
#8

Сразу скажу, что никакие повышения циферок наугад не помогут. 504 - это мертвый апач, а не тормозящий апач. Может лучше начать с логов апача? Почему он падает?

Дайте логи от "за 5 минут до" и вплоть до 2010/07/03 15:35:55

M
На сайте с 16.09.2009
Offline
278
#9
bugsmoran:
Сразу скажу, что никакие повышения циферок наугад не помогут. 504 - это мертвый апач, а не тормозящий апач. Может лучше начать с логов апача? Почему он падает?

Дайте логи от "за 5 минут до" и вплоть до 2010/07/03 15:35:55

504 - это ответ nginx, он к апачу имеет только то отношение, что nginx до него не достучался. А потому что именно тот тормозит. Если бы не отвечал вовсе (connection refused...) - логи nginx выглядели бы иначе.

А наугад, конечно, не надо - документацию сперва посмотреть нада...

bugsmoran
На сайте с 18.02.2010
Offline
223
#10
myhand:
504 - это ответ nginx, он к апачу имеет только то отношение, что nginx до него не достучался. А потому что именно тот тормозит. Если бы не отвечал вовсе (connection refused...) - логи nginx выглядели бы иначе.

А наугад, конечно, не надо - документацию сперва посмотреть нада...

Я знаю, что 504 отдает нгинкс. Только Вы ошибаетесь, что если апач тормозит, то нгинкс отдаст 504. Он отдаст 503 в таком случае. Апач именно мертв. Тормозящий Апач поставит в очередь и скажет нгинксу Service Unavailabe, а не Gateway Timeout.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий