Можете ли вы рассчитывать на то, что Nginx станет вашим единственным веб-сервером? Я знаю, что с точки зрения производительности он работает хорошо, но как он работает с точки зрения безопасности. Я знаю, что Apache стабилен и имеет ModSecurity. Это не относится к Nginx.
Я собираюсь использовать Nginx только как веб-сервер и только для динамического контента. Весь мой статический контент доставляется через CDN.
nginx запускает динамический контент путем «обратного проксирования» на сервер fastcgi. Пакет php-cgi в большинстве дистрибутивов включает режим fast-cgi, в котором php запускает небольшой сервер fcgi, к которому вы также можете подключить nginx.
Такое разделение позволяет делать умные вещи:
Обновлено: в комментариях ниже есть несколько ссылок:
fastcgi_pass param - Вот как вы указываете nginx передавать запрос на сервер fastcgi. FastCGI работает, передавая переменные (которые намеренно выглядят как переменные среды CGI), но позволяет передавать любые произвольные данные из внешнего интерфейса в серверную часть. В дистрибутиве debian (а также в дистрибутиве исходного кода iirc) есть файл fastcgi.conf, который включает в себя все параметры по умолчанию, которые необходимы большинству инструментальных средств, чтобы начать работу.
Модуль Upstream - Модуль Upstream позволяет вам определять несколько восходящих серверов, которые могут быть другими веб-серверами, серверами fastcgi или чем-либо еще. Модуль fastcgi_pass включает короткий пример, в котором используется восходящий поток. Обратите внимание, что в системе с одним хостом вы даже можете использовать сокеты домена unix и не нести накладных расходов TCP / IP!
Пример PHPFCGI - Здесь представлен полный образец конфигурации. Я лично являюсь поклонником daemontools (или runit, если вы не поклонник djb) и написал очень простые оболочки для запуска php-fcgi под контролем процесса (который перезапустится, если он ненормально завершится), но сценарий, представленный на этой странице это сценарий в стиле SysV, который вы можете поместить в /etc/init.d/ и добавить соответствующие ссылки в /etc/rcX.d/. В сценарии на этой странице есть несколько переменных, которые вы можете настроить, чтобы настроить среду, в которой работает ваше приложение fcgi.
Виртуальный хостинг упрощен с помощью разделов «сервер»:
server {
server_name www.host.com host.com other_aliases;
...
}
server {
server_name www.host2.com host2.com other_aliases;
...
}
Видеть Раздел на server_name для получения дополнительных сведений остальная часть этой страницы содержит много информации о том, как можно настроить модуль corehttp.
Что касается безопасности, Игорь (ведущий разработчик) серьезно относится к безопасности и часто участвует в их очень активном списке рассылки. Вот список признанные проблемы безопасности , а вот список их архив списка рассылки
Я запускаю nginx с php-fcgi на высоконагруженном сервере, он работает потрясающе.
Безопасность - это то, что вы создаете сами. Всегда. Пожалуйста, не ошибитесь, полагаясь на какое-то программное обеспечение, которое волшебным образом защитит вас, когда дело доходит до реальных проблем. Не будет. Хорошее кодирование и администрирование.
У меня создалось впечатление, что Nginx может обслуживать только статический контент? Это делает php «невыполнимой миссией»