Я разрабатываю приложение ASP.NET, которое будет запускаться под Linux / Mono по разным причинам (откровенно говоря, в основном, чтобы держаться подальше от IIS). Конечно, первым веб-сервером, который я имел в виду, был Apache. Но Apache, при всех своих преимуществах, добавляет много накладных расходов. Кроме того, приложение, которое я создаю, должно быть хорошо масштабируемым, и производительность является одной из основных проблем.
Apache, очевидно, имеет очень хорошую репутацию, и его показатели говорят сами за себя, но мне не нужны такие вещи, как обратный прокси или балансировка нагрузки, потому что для этого будут использоваться выделенные сетевые устройства. Так что эти модули от Apache никогда не будут использоваться.
Итак, в основном мой вопрос: поскольку Nginx, кажется, полностью соответствует потребностям, есть ли какие-то предостережения, о которых я должен знать? Например, известен ли Nginx своей безопасностью? Когда обнаруживаются недостатки безопасности, как быстро они исправляются?
Любое понимание плюсов и минусов использования любого из этих серверов вместе с Mono приветствуется.
спросите себя, ЧТО будет делать приложение
много файлового ввода-вывода? ну, тогда модель потоковой передачи apache в порядке, файловый ввод-вывод блокирует
длительные связи с клиентами? тогда модель событий nginx более подходит, сетевой ввод-вывод может быть неблокирующим
Самый честный ответ - маловероятно, что вы выйдете за архитектурные ограничения ЛЮБОГО веб-сервера. просто используйте то, что вам удобнее. аргументы «накладных расходов», направленные против модели потоков apache, имеют смысл только в сценариях с высоким трафиком.
@ABrown: Вы ошибаетесь в том, что интерпретируется ASP.Net.
Приложения / веб-сайты могут быть написаны, например, на C #, которые затем компилируются в промежуточный байт-код (IL). Это фаза 1.
Когда пользователь впервые посещает веб-сайт, байт-код затем компилируется в машинный код.
Последующие посещения веб-сайта вызывают машинный код (он не анализируется и не интерпретируется, он выполняется изначально).
Я лично заменил свою установку Nginx на Чероки
Пока все работает так же быстро, к тому же у меня есть веб-интерфейс. Он также поддерживает Mono.
Сергей Сысоев - автор nginx - довольно часто выпускает патчи. Веб-сервер очень хорош и способен эффективно запускать что угодно с помощью FCGI, будь то PHP или Mono или что-то еще. Nginx также чрезвычайно эффективен в обслуживании статического контента и использует очень мало памяти для всех этих средств поддержки активности и медленных. Кроме того, у него есть приятные функции и модули, доступные для защиты от DDoS-атак.
Но послушайте, все языки сценариев работают медленно. Если производительность является основной проблемой, может быть, вам лучше попробовать создать приложение FCGI на C?
Ура! :)