Идет 2018 год, технологии не стоят на месте, поэтому стоит вопрос, как лучше конфигурировать веб-сервер: nginx-php_fpm или nginx+apache или другой вариант?
Чтобы сразу обозначить краеугольные моменты, допустим веб-сервер мощный с 8ГБ ОЗУ, многоядерным процессором.
"Apache лучше, потому что есть .htaccess" - это детский лепет и вопрос лени.
CMS полностью своя, пишется и дорабатывается с нуля, чем-то по логике похожа на модель MVC, в любой момент может масштабироваться до любой конфигурации движка.
Проект пока на тесте, нагрузки малые, так же подключены MariaDB Redis и Tarantool
В план, чтобы проект был большим и соответственно очень нагруженным, много как статики, так и динамики
Есть опыт работы и с nginx и с apache, но я честно не знаю, как грамотно собрать, вроде как nginx с frm сложнее настроить, но это не проблема.
Или даже не смотря на большой объем оперативки, все-таки лучше заменить апач на fpm?
Или сидеть на связке Nginx + Apache + proxy_fcgi_module, долго и упорно настраивать и переписывать и дописывать CMS и т.д. гонясь за оптимизацией и надеяться, что апач будет быстро разбирать динамику в отличии от голого nginx?
Если вас действительно волнует производительность, то правильно будет сделать и так и эдак, собрать логи, профайлер повключать, тесты погонять нагрузочные, собрать статистику с реальными юзерами, посмотреть где в каком варианте узкие места, подумать можно ли это разрулить настройками, взвесить какой из вариантов предпочтительнее для вашей системы, или может даже половину проекта запустить через апач а другую через nginx.
Если вас производительность не парит, то делайте как вам удобнее или как там модно в 2018 году.
долго и упорно настраивать и переписывать и дописывать CMS
У вас cms зависит от того, какой сервер используется? really?
> Есть узкие места в работе сервера, где можно оптимизировать сам код PHP
Даже теоретически не могу представить такой ситуации.
Сначала сервер получает запрос, потом запускается и отрабатывает PHP, потом отдает результат. Оптимизируя PHP вы влияете на то с какой скоростью выполняется PHP и никак не влияете на то что делает сервер до и после. Разве нет?
Разъясните плз.
* я знаю, что сервер можно заставить отдавать страницу частями, по мере ее готовности, но никто там не делает в фреймворках вроде и опять же это не меняет самого принципа
Stalker_REDАлександр Маджугин, чисто исходя из того, что некоторые цели достигаются разными подходами, а уже сами методы достижения цели отрабатываются какие-то быстрее в Apache, какие-то в Nginx, исходя из вопросов потребления памяти и ресурсов процессора
... * я знаю, что сервер можно заставить отдавать страницу частями, по мере ее готовности, но никто там не делает в фреймворках вроде...
Не "можно заставить", а он по умолчанию так работает, и большинство нормальных фреймворков тоже сразу отдают контент не буферизируя. Это как минимум улучшает TTFB, а если удастся отправить head из страницы - браузер начнет грузить стили и скрипты еще пока вы генерируете body.
Stalker_RED, конечно, это хорошо! И я сам когда-то тоже так думал и пытался сделать. Но на практике это не работает дальше какого-нибудь лендинга.
Хотя может работать для вэб-приложений. Но не для какого-то сайта.
Александр Маджугин, Давно находил на зарубежном форуме скрипт на LazyLoad страницу написанную разными методами, в первом тесте nginx выиграл на 50% под PHP-FPM7.2, во втором выиграл Apache под mod-php не помню на сколько
Помню только, что именно конфигурация апача взяла второй тест, но опять же, конкретно этот пример не найду
Влад Скляр, вот и обратите внимание на LazyLoad. Дело не в том КАК написан скрипт на PHP, а в том какой у этого скрипта выхлоп и как грузится страница в браузере.
Это ни как не относится к оптимизации PHP кода.
Обе страницы с равным успехом могут быть статичными вообще без генерации.
Когда мы говорим об оптимизации PHP речь идет о том как оптимальние сгенирировать ОДИН И ТОТ ЖЕ html.
Много споров по этому поводу, конечно.
У меня стоит VDS на Debian 9 с nginx/1.10.3 (из-за некоторых ньюансов не могу обновить на последнюю версию), также, стоит PHP7 (в PHP 7 включен OpCache, что дает кучу производительности) - что могу сказать, летает.
А на счет Apache - он много ресурсов кушает.