(nginx+Apache+php_mod) или (nginx+php_cgi) ?
Модераторы: Trinity admin`s, Free-lance moderator`s
(nginx+Apache+php_mod) или (nginx+php_cgi) ?
Какую связку предпочесть: (nginx+Apache+php_mod) или (nginx+php_cgi) ?
На данной машине выполняются ТОЛЬКО php скрипты. Вся статика вынесена на отдельную машину, MySQL - вынесен на третью машину.
Сейчас работает связка (nginx+Apache+php_mod). По команде "top" имеется "load averages" порядка 5 в часы пик. Хочется уменьшить... Памяти 3Гб, из них 2Гб свободные. Будет ли (nginx+php_cgi) более отпимальным?
На данной машине выполняются ТОЛЬКО php скрипты. Вся статика вынесена на отдельную машину, MySQL - вынесен на третью машину.
Сейчас работает связка (nginx+Apache+php_mod). По команде "top" имеется "load averages" порядка 5 в часы пик. Хочется уменьшить... Памяти 3Гб, из них 2Гб свободные. Будет ли (nginx+php_cgi) более отпимальным?
-
- Advanced member
- Сообщения: 229
- Зарегистрирован: 25 окт 2005, 09:30
- Откуда: Краснодар
Прежде чем такое сделать, проверьте с пристрастием все пхпшные скрипты на предмет совместимости с php-fgi. В общем случае работать будет не всё. Например, перестанут работать URLы вида
http://host.name/script.php/one/two/ - то есть, виртуальные пути. Возможны и другие грабли, специфичные для конкретных скриптов (у меня были проблемы с vbulletin, например). Потеряете и .htaccess, если им пользуетесь.
В зависимости от настроек php-fcgi, может быть выигрыш процентов 10 относительно апача, но не в разы. Гораздо больше дадут eaccelerator/xcache и кэширование html в статические файлы с последующей раздачей их nginx'ом.
Если будете экпериментировать, возьмите php-fpm - набор патчей, исправляющий многие "особенности" работы php в позе fastcgi.
По-моему, такой переход имеет смысл, если очень уж хочется избавиться от апача. У меня сейчас половина php работает на nginx+php, половина на nginx+apache+mod_php. Разница в производительности не особо заметна.
http://host.name/script.php/one/two/ - то есть, виртуальные пути. Возможны и другие грабли, специфичные для конкретных скриптов (у меня были проблемы с vbulletin, например). Потеряете и .htaccess, если им пользуетесь.
В зависимости от настроек php-fcgi, может быть выигрыш процентов 10 относительно апача, но не в разы. Гораздо больше дадут eaccelerator/xcache и кэширование html в статические файлы с последующей раздачей их nginx'ом.
Если будете экпериментировать, возьмите php-fpm - набор патчей, исправляющий многие "особенности" работы php в позе fastcgi.
По-моему, такой переход имеет смысл, если очень уж хочется избавиться от апача. У меня сейчас половина php работает на nginx+php, половина на nginx+apache+mod_php. Разница в производительности не особо заметна.
- RedScorp
- Advanced member
- Сообщения: 158
- Зарегистрирован: 24 июл 2003, 11:01
- Откуда: Западный Казахстан, г.Уральск
- Контактная информация:
Доброго времени суток. К сожалению, не нашел ответа (хотя может я не так искал). В общем меня интересует связка "nginx+Apache+php_mod". Все установлено nginx висит на 80 порту, а Apache на 8080. Работают они прекрасно друг с другом. Хотя пришлось прикрутить к апачу еще и mod_rpaf (вычитал на nginx.info)
Все бы ничего, да только вот Apache собран с опциейдобавим в httpd.conf
LoadModule rpaf_module modules/mod_rpaf.so
## Mod_rpaf settings
RPAFenable On
RPAFproxy_ips 127.0.0.1 realip [realip1]
RPAFsethostname On
добавим в nginx.conf (раздел server)
proxy_set_header X-Forwarded-For $remote_addr;
А это значит что он создаёт количество дочерних процессов на каждый запрос (будь то картинка или страница), в каждом из них ровно по одному потоку. В принципе, у меня на работе (под Linux) проблем нет, там Apache гордо один работает с парой статических страниц. Но вот на VDS у меня ограничение озу в 128 метров и проц 500 MHz (кстати, тут FreeBSD), где установлен DLE + phpBB. И судя по top'у память съедается вся (зачем Apache по 20 метров памяти?! или у меня руки кривые?!)# httpd -V | grep MPM
Server MPM: Prefork
-D APACHE_MPM_DIR="server/mpm/prefork"
# cat httpd-mpm.conf
<IfModule mpm_prefork_module>
StartServers 1
MinSpareServers 1
MaxSpareServers 5
MaxClients 150
MaxRequestsPerChild 0
</IfModule>
Так вот вопрос, если пересобрать Apache c поддержкой Worker (где один процесс по дефолту работает с 25 потоками) - уменьшит ли это нагрузку на сервер (Я понимаю, что если Apace откажет - то рухнут все сразу 25 потоков) ???после запуска связки:
Mem: 89M Active, 39M Free
Swap: 256M Total, 256M Free
после открытия парочки страниц:
last pid: 41558; load averages: 0.08, 0.07, 0.05
58 processes: 1 running, 57 sleeping
CPU states: 0.0% user, 0.0% nice, 0.0% system, 0.0% interrupt, 100% idle
Mem: 128M Active, 25M Inact
Swap: 256M Total, 256M Free
PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND
29857 www 1 20 0 25668K 20416K lockf 2 0:04 0.00% httpd
29858 www 1 4 0 24960K 19444K kqread 0 0:04 0.00% httpd
29852 www 1 20 0 24620K 19196K lockf 0 0:03 0.00% httpd
29806 www 1 20 0 24096K 18752K lockf 6 0:04 0.00% httpd
29802 root 1 8 0 19084K 13336K nanslp 1 0:01 0.00% httpd
29803 root 1 96 0 18488K 13012K select 5 0:00 0.00% httpd
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 22 гостя