Отказ от apache в связке nginx + httpd + php?

Как сейчас правильно подключать php к nginx? Какой способ является актуальным на данный момент? PHP 5.3.17.

Есть ли минусы в отказе от httpd (rewrite не используется)?
  • Вопрос задан
  • 12225 просмотров
Пригласить эксперта
Ответы на вопрос 5
@hell
Боюсь, что огребу за свой совет кучу минусов, но тем не менее:

Месяца три назад, я 2 недели посвятил тестам — что лучше. Правда — у меня стоял PHP 5.4, nginx 1.2 и все это на Debian
Тестировал (и, разумеется, в процессе тестов тюнил ОС и все прочие настройки) четыре варианта — nginx+PHP, nginx+ahache+PHP, nginx+nginx+PHP (в последнем случае есть внешний нгинкс, работающий со статикой и отправляющий запросы к PHP на внутренний нгинкс) и nginx+apache+PHP-FPM.

Внутренние нгинкс и апач запускаются в режиме keepAlive off
У апача отрублено все лишнее (в моем случае оставлены dir, auth, mime, rpaf). ,haccess не используется (если че-то нужно органичить — ставим напрямую в конфигах сайта, все перенаправления — через внешний нгинкс)
У внешнего нгинкса включен gzip, отключено кеширование
Внутренние сервера логируют только ошибки php

Во всех случаях на реальные сайты натравливался siege с увеличенным таймаутом и с 1000 конкурентных запросов.

Да — и машинка — Хетзнеровская с 24 GB памяти.

Результаты получились следующие:

nginx + php — не котируется вообще. выводит память в свап, нагрузка в top — 140 — 150 примерно через минуту после начала осады. Манипуляции с системой и настройками не помогли.

nginx+apache+php-fpm — жрет память и залезает в свап, процессор особо не грузит. Есть проблемы со стабильностью (siege стабильно отрабатывал с параметром не более -c 500)

nginx+apache+php и nginx+nginx+php — примерно одинаковые результаты — средняя нагрузка в top — 3, среднее потребление памяти — 14 — 16 Gb. Количество транзакций также примерно одинаково (apache показывал результаты примерно на 3-4 транзакции в секунду лучше)

nginx+nginx+php работал чуть менее стабильно, чем nginx+apache+php (не чуть, даже — чуть-чуть — то есть пару тройку раз сокет все-таки падал, а в случае apache тaкого не было)

Пришлось остановиться на классике (хотя очень хотелось ограничиться nginxом)

Впрочем — это все — лирика. Я бы рекомендовал провести серию тестов с вашим софтом (и с вашим админом) — возможно вы получите другие результаты. Впрочем — и это почти наверняка — вариант с реверс-прокси будет заведомо более производительным.
Ответ написан
la0
@la0
Минусов особых нет (апач это очень функциональный «энтерпрайзный» реактор, для большинства проектов он избыточен).
см. php.net/manual/ru/install.fpm.php

Чтобы нормально без костылей писать конфиги nginx, нужно немного с ним поработать. (переводить продакшн раньше, чем тестовую/dev площадку уж точно не стоит).

Бытовая очевидность: если проблемы не в апаче, а в голове^W кривом коде, никакая смена вебсервера их не решит.
Ответ написан
MpaK999
@MpaK999
Буду!
NGINX + PHP-FPM очень стабильно работает уже более 2-х лет у меня, раньше подключал на порт, например :9000, сейчас удобнее подключать через socket'ы
Ответ написан
@transpond
Минусов в отказе от httpd не вижу, однако, сколько людей, столько и мнений.
Меня данная связка пока не подводила.
Совет — смело устанавливай и пользуйся. Об установке неплохо написано здесь: habrahabr.ru/post/164401/
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы