Недостатки использования nginx в качестве основного веб-сервера?


12

Я видел миллионы сайтов, использующих nginx как проксирующий веб-сервер, работающий вместе с Apache. Но я видел очень мало серверов, использующих nginx только в качестве веб-сервера по умолчанию. Каковы основные недостатки такого конфига?

Я вижу некоторые:

  • Невозможность использовать файлы конфигурации для каждого каталога, такие как .htaccess, поэтому каждое изменение конфигурации должно быть сделано для основного файла конфигурации сервера и требует перезагрузки сервера. Но pecl htscanner может их компенсировать настройками php
  • Недоступность mod_php для nginx, который может быть компенсирован, например, php-fpm.

Какие другие? Почему люди просто не оставляют Apache и не переходят на nginx или любое другое легкое решение? Может быть, есть какие-то особые причины?

РЕДАКТИРОВАТЬ: этот вопрос в первую очередь о работе со стеком LAMP.


1
Разум, инерция, инвестиции. Как всегда.
Игнасио Васкес-Абрамс

Какие инвестиции потребовались для установки nginx на новом сервере? Это бесплатное программное обеспечение с открытым исходным кодом.
Владислав Раструсный


Если мы говорим о количестве, ИМХО самая главная причина - огромное количество хостов, использующих Apache. Настроить nginx как общую службу (например, в cPanel, Plesk и т. Д.) Еще не так просто, как сделать это с Apache, особенно для конечных пользователей. И я знаю много выделенных серверов, которые работают на одном сайте и все же используют cPanel / Plesk / и т. Д. Только из-за простоты, знакомства и низкой стоимости установки.
Халил Озгюр

Ответы:


9

По моему опыту #nginx, это почти всегда из-за знакомства с файлами Apache .htaccess и нежелания терять его или иным образом в зависимости от него. Например, люди, работающие на хостинге с общим сервером, которые хотят выгружать только статические файлы и держать Apache для своих пользователей.

И я, честно говоря, не могу придумать никаких других причин для проксирования к Apache, кроме хранения .htaccess для конечных пользователей.

Изменить: На самом деле mod_php плюс phpsuexec для общих хостов может быть еще одной причиной придерживаться Apache.


Из моего опыта довольно сложно добиться хорошей производительности от tomcat через nginx, так как ajp-работник apache2 заметно быстрее работает под высоким давлением. Я знаю, что у nginx есть экспериментальная реализация ajp13, но она не стабильна и плохо документирована.
Пауска

1
Это очень возможно. Nginx лучше всего работает как обратный прокси-сервер fastcgi или HTTP 1.0. Я знаю, что существуют сторонние модули для общения с scgi, wsgi и т. Д., Но я не могу сказать, насколько они стабильны или даже насколько они быстры.
Мартин Фьордвальд,

Кстати, mod_php не работает с suexec. Suexec для приложений cgi.
Владислав Раструсный

Ну вот и все, никаких реальных причин. Слишком долго был пользователем nginx, чтобы даже больше помнить Apache. : D
Мартин Фьордвальд

6

Если у вас есть группа людей, которые могут заставить Apache работать хорошо, зачем беспокоиться о переучивании всего нового приложения и конфигурации, перенастройке правил mod_rewrite, повторении конфигураций mod_perl / php / etc, повторном тестировании, повторном развертывании?

Оба программного стека могут быть бесплатными, но «переподготовка, переработка, повторное тестирование» - это не так, и пришло время добавить функции, которые интересуют ваших пользователей 1 , вместо того, чтобы возиться с ними , чтобы переделать что-то новое .

+1 Я явно не говорю о личных проектах, нет.


2

Мне нравится Nginx, но две вещи мешают мне использовать его для моих веб-сайтов.

  • Сложно настроить PHP-FPM . Мне пока не удалось сделать это с последней версией PHP.

  • Nginx не поддерживает веб-сокеты HTML5, в которых я заинтересован.


1
Можете ли вы назвать трудности, которые вы испытали с nginx и php-fpm? Что касается HTML5 WebSockets, похоже, что у Apache их еще нет: questions.apache.org/bugzilla/show_bug.cgi?id=47485
Владислав Раструсский

Я также хотел бы знать о проблемах с php-fpm. Если вы можете скомпилировать PHP из исходного кода без него, то очень просто сделать это с ним.
Мартин Фьордвальд

1
В ветке 5.3 она уже есть, поэтому просто ./configure --enable-fpm и все готово.
Владислав Раструсный
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.