Высоконагруженный веб-сервер на CentOS

Есть на работе web-сервер на CentOS 6 на шестидисковом рэйде. Это shared с 814 (!!!) виртуальными хостами. С некоторых пор Apache (httpd.itk) перестал стартовать при загрузке ОС. А на днях начал протекать nginx:

Высоконагруженный веб-сервер на CentOS

Решил побороть эту проблему и, вроде как, удачно. Всё дело оказалось в файловых дескрипторах. В CentOS их по-умолчанию 1024, что ничтожно мало для почти тысячи вирт хостов, т.к. для каждого домена используется 1-2 файловых дескриптора для записи в access.log и error.log в каждую еденицу времени запущенного веб-сервера. Для начала увеличим ulimit -n:

Но этого мало, т.к. ни nginx, ни apache не подцепит эти параметры при загрузке. Фиксим Apache. В файл /etc/sysconfig/httpd добавляем строку

Так же добавим действие в apachectl. Редактируем файл  /usr/sbin/apachectl:

Теперь поможем выстоять серверу nginx под этой нагрузкой. Здесь проще. Добавим в /etc/nginx/nginx.conf:

И в /etc/sysconfig/nginx:

И немного ограничим leaky buckets:

Вот теперь гопачь встаёт при старте а энжин-икс не течёт.

Ясного неба хостерам и поменьше облачности. ;)

ЦОПЫРИГХЪТ