Mono no Linux: Apache ou Nginx

4

Estou desenvolvendo um aplicativo ASP.NET que será executado no Linux / Mono por vários motivos (principalmente para ficar longe do IIS, com muita franqueza). Claro que o primeiro servidor web que eu tinha em mente era o Apache. Mas o Apache, apesar de todas as suas vantagens, adiciona muita sobrecarga. Além disso, o aplicativo que estou construindo precisa ser altamente escalável e o desempenho é uma das principais preocupações.

O Apache tem, obviamente, uma reputação muito boa e seu registro fala por si, mas eu não preciso de coisas como Proxy Reverso ou Balanceamento de Carga porque dispositivos de rede dedicados seriam usados para isso. Então, esses módulos do Apache nunca serão usados.

Então, basicamente, minha pergunta é: como o Nginx parece se encaixar exatamente nas necessidades, há alguma advertência que eu deva saber? Por exemplo, o Nginx é conhecido por ser particularmente seguro? Quando falhas de segurança são detectadas, com que rapidez elas são corrigidas?

Qualquer ideia sobre os prós e contras de usar esses servidores em conjunto com o Mono é bem-vinda.

    
por Astaar 16.12.2009 / 17:01

4 respostas

4

pergunte a si mesmo o que o aplicativo estará fazendo

muitos arquivos de E / S? bem, então o modelo de encadeamento do apache está bem, a E / S de arquivos está bloqueando

conexões de longa duração com clientes? então o modelo de evento do nginx é mais apropriado, a rede de E / S pode ser não bloqueada

a resposta mais honesta é que é improvável que você esteja atingindo os limites arquitetônicos de QUALQUER servidor da web. Basta usar o que você está mais confortável com. os argumentos "overhead" direcionados contra o modelo de encadeamento do apache são significativos apenas em cenários de alto tráfego.

    
por 09.12.2010 / 05:44
1

Sergey Sysoev - o autor do nginx - lança patches com bastante frequência. O servidor é muito bom, e é capaz de executar efetivamente qualquer coisa com a ajuda do FCGI, seja PHP ou Mono ou qualquer outra coisa. O Nginx também é extremamente eficiente em servir conteúdo estático e usa muito pouca memória para todos esses keep-alives e lentos. Além disso, possui ótimos recursos e módulos disponíveis para resistir a ataques DDoS.

Mas veja, toda linguagem de script é lenta. Se o desempenho é a principal preocupação, talvez seja melhor tentar criar um aplicativo FCGI em C?

Felicidades! :)

    
por 17.12.2009 / 03:26
1

Eu pessoalmente substituí minha configuração Nginx por Cherokee

Até agora, tudo está sendo executado com a mesma rapidez e eu tenho uma interface web além disso. Também suporta Mono.

    
por 30.03.2010 / 04:48
1

@Brown: Você está errado no ponto em que o ASP.Net é interpretado.

Aplicações / sites podem ser escritos em C #, por exemplo, que são então compilados em um bytecode intermediário (IL). Essa é a fase 1.

Quando um usuário visita inicialmente o site, o código de bytes é então compilado para código de máquina.

Visitas subsequentes ao site invocam o código da máquina (ele não é analisado ou interpretado, é executado nativamente).

    
por 09.12.2010 / 04:05