Падет процесс php-cgi

BlackSmoke
На сайте с 22.11.2008
Offline
19
932

На сервере установлена связка nginx + php + spawn-fcgi.

Связываются они строчкой

/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u nginx -g nginx -f /usr/bin/php-cgi -P /var/run/fastcgi-php.pid
в rc.local, для автозапуска. Вроде все ок, но при ддосе процессы php-cgi просто умирают, причем при сравнительно небольшой нагрузке, и даже после прекращения атаки сайты лежат. Мучал гугл, ничего не нашел по этому поводу. Думаю, спасло бы отца русской демократии вынесение этой команды в отдельный файл в init.d, только не хватает знаний для реализации. Кто сталкивался с похожей проблеммой и как ее решали?
....
M
На сайте с 16.09.2009
Offline
278
#1

либо какой-то мониторинг типа monit

либо что-то вроде daemontools

либо самописный костыль, например:

http://www.softwareprojects.com/resources/programming/t-how-to-auto-restart-spawn-fcgi-1600.html

PS: в случае sysv-инициализации (linux) можно прописать действие

respawn в inittab. плюс, у нас есть ряд альтернатив

sysv init, например upstart - он умеет и поднимать сервисы

в том числе.

Абонементное сопровождение серверов (Debian) Отправить личное сообщение (), написать письмо ().
BlackSmoke
На сайте с 22.11.2008
Offline
19
#2

вещь очень интересная, скорее всего, заюзаю ее.

в случае sysv-инициализации (linux) можно прописать действие
respawn в inittab. плюс, у нас есть ряд альтернатив
sysv init, например upstart - он умеет и поднимать сервисы
в том числе.

можно ссылку на более подробный мануал или конкретное решение?

M
На сайте с 16.09.2009
Offline
278
#3
BlackSmoke:

можно ссылку на более подробный мануал или конкретное решение?

man inittab

или

google: upstart

PS: в *bsd не SysV система инициализации - вам

подобное вряд-ли поможет (там аналогичную вещь можно сделать в /etc/ttys)

BlackSmoke
На сайте с 22.11.2008
Offline
19
#4

система - centos.

Спасибо, сейчас спрошу гугл :)

M
На сайте с 16.09.2009
Offline
278
#5
BlackSmoke:
система - centos.
Спасибо, сейчас спрошу гугл :)

спросите лучше man ;) inittab - простейшее решение в вашем случае.

BlackSmoke
На сайте с 22.11.2008
Offline
19
#6

Покурил мануалы, в моем случае решением будет что-то вроде

xd:5:respawn:/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u nginx -g nginx -f /usr/bin/php-cgi -P /var/run/fastcgi-php.pid

пойду пробовать.

BlackSmoke добавил 16.11.2009 в 03:29

К сожалению, не заработало. Пойду юзать пресловутый костыль :)

Andreyka
На сайте с 19.02.2005
Offline
822
#7

php-fpm

Десять cgi

Не стоит плодить сущности без необходимости

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