Назад | Перейти на главную страницу

Есть ли недостатки в использовании Nginx в качестве единственного веб-сервера для динамического веб-сайта (PHP, MongoDB)?

Я работаю над новым проектом, который будет размещен на Amazon EC2. Скорость запросов имеет первостепенное значение, а низкий объем памяти, занимаемый Nginx, очень важен. Я всегда использовал Apache, но если Nginx дает значительные преимущества, я бы хотел перейти на него.

Я вижу, что многие люди используют Apache + Nginx, но есть ли по состоянию на 2011 год какие-либо недостатки использования Nginx с PHP-FPM для обслуживания как статического, так и динамического контента? Я знаю, что .htaccess больше не подходит для Nginx, но я также понимаю, что есть способы обойти это.

В принципе, вы получите максимальную производительность от Apache + Nginx или только от Nginx?

Спектакль будет очень похожим. В одном сценарии вы используете FastCGI в качестве уровня связи между Nginx и PHP, а в другом сценарии вы используете Apache + HTTP в качестве уровня связи. В конечном итоге разница между FastCGI и HTTP вряд ли будет иметь какое-либо значение, если у вас есть накладные расходы на PHP. Apache будет использовать некоторую дополнительную память, но поскольку он сохраняет PHP встроенным в свой собственный процесс, разница в скорости незначительна.

В конечном итоге вы должны игнорировать вышеизложенное, если вы действительно серьезно не должны иметь максимальную производительность от одного сервера, поскольку вы застряли в месте, где мощности достаточно только для одного сервера, что делает невозможным масштабирование вообще.

Важным аспектом здесь является то, что вам удобно и какие функции вам нужны. Если вам комфортно с .htaccess, тогда выясните, стоит ли избавление от использования памяти Apache, снижения производительности .htaccess и дополнительных функций PHP-FPM вложений в повторное изучение материала.

В случае, если это не очевидно, я фанат прямого Nginx + PHP-FPM, в основном из-за изящных функций, таких как медленный журнал, который дает мне дополнительный способ убедиться, что все работает должным образом. Но это требует переобучения, нет никакого способа, чтобы .htaccess больше не был доступен, вы не можете волшебным образом преобразовать ваш файл .htaccess в формат nginx, поскольку конфигурация nginx значительно отличается.

Если вы все же решите использовать Nginx, сделайте себе одолжение и прочтите документацию. В частности мой учебник по nginx написано как введение, официальная английская документация от автора nginx Игоря, а также директивы wiki на расположение и try_files.