As desvantagens de usar o nginx como um servidor Web principal?

12

Eu já vi milhões de sites usando o nginx como um servidor de proxy trabalhando em conjunto com o Apache. Mas eu vi muito poucos servidores executando o nginx apenas como seu servidor da web padrão. Quais são as principais desvantagens dessa configuração?

Eu posso ver alguns:

  • Incapacidade de usar arquivos de configuração por diretório, como .htaccess, para que todas as alterações na configuração sejam feitas no arquivo de configuração do servidor principal e exijam a atualização do servidor. Mas o pecl htscanner pode compensá-los pelas configurações de php
  • Indisponibilidade de mod_php para nginx, que pode ser compensado por php-fpm, por exemplo.

Quais são os outros? Por que as pessoas simplesmente não abandonam o Apache e passam para o nginx ou qualquer outra solução leve? Pode ser, existem algumas razões especiais?

EDIT: esta pergunta é principalmente sobre como trabalhar com a pilha LAMP.

Vladislav Rastrusny
fonte
1
Mindshare, inércia, investimento. Mesmo que sempre.
Ignacio Vazquez-Abrams
Qual investimento é necessário para configurar o nginx em um novo servidor? É um software livre de código aberto.
Vladislav Rastrusny
3
O investimento em tempo necessário para pesquisar, implantar, testar etc.
ThatGraemeGuy
Se estamos falando de quantidade, IMHO, o maior motivo é o grande número de hosts compartilhados usando o Apache. Configurar o nginx como um serviço compartilhado (por exemplo, no cPanel, Plesk, etc) ainda não é tão fácil quanto fazer o mesmo com o Apache, especialmente para os usuários finais. E conheço muitos servidores dedicados que executam um único site e ainda usam o cPanel / Plesk / etc apenas por causa da facilidade, familiaridade e baixo custo de instalação.
Halil Özgür

Respostas:

9

Da minha experiência no #nginx, é quase sempre por causa da familiaridade com os arquivos .htaccess do Apache e por não querer perdê-lo ou não, dependendo dele. Por exemplo, pessoas executando um servidor de hospedagem compartilhada que deseja descarregar apenas arquivos estáticos e manter o apache para seus usuários mexerem.

Sinceramente, não consigo pensar em outros motivos para fazer proxy do Apache além de manter .htaccess para os usuários finais.

Edit: Na verdade, mod_php mais phpsuexec para hosts compartilhados podem ser outro motivo para continuar com o Apache.

Martin Fjordvald
fonte
Pela minha experiência, é muito difícil obter um bom desempenho do tomcat via nginx, pois o ajp-worker do apache2 é notavelmente mais rápido sob alta pressão. Eu sei que o nginx tem uma implementação experimental ajp13, mas não é estável e está mal documentada.
22410 pauska
1
Isso é muito possível. O Nginx funciona melhor como um proxy reverso fastcgi ou HTTP 1.0. Eu sei que existem módulos de terceiros para conversar com scgi, wsgi etc, mas não posso dizer o quão estáveis ​​são, ou mesmo a rapidez com que são.
Martin Fjordvald
BTW, mod_php não funciona com suexec. Suexec é para aplicações cgi.
Vladislav Rastrusny
Bem, lá vai você, sem verdadeiras razões. Foi um usuário nginx por muito tempo para nem lembrar mais do Apache. : D
Martin Fjordvald
6

Se você tem várias pessoas que podem fazer o Apache funcionar bem, por que se preocupar em reaprender um aplicativo e uma configuração totalmente novos, migrar regras mod_rewrite, refazer configurações mod_perl / php / etc, testar novamente, reimplementar?

Ambas as pilhas de software podem ser gratuitas, mas "re-treinar, re-desenvolver, re-testar" não é, e está na hora de adicionar recursos de que os usuários se preocupam 1 , em vez de mexer no intuito de mexer.

1 Obviamente, não estou falando de projetos pessoais.

Rodger
fonte
2

Eu gosto do Nginx, mas duas coisas me impedem de usá-lo em meus sites.

  • É difícil configurar o PHP-FPM . Ainda não consegui fazê-lo com a versão mais recente do PHP.

  • O Nginx não oferece suporte para Websockets HTML5, nos quais estou interessado.

Jonas
fonte
1
Você pode citar as dificuldades que teve com o nginx e o php-fpm? Sobre o HTML5 WebSockets, parece que o Apache ainda não os possui: issues.apache.org/bugzilla/show_bug.cgi?id=47485
Vladislav Rastrusny
Gostaria de saber também os problemas de php-fpm. Se você pode compilar o PHP a partir da fonte sem ele, é muito simples fazê-lo também.
Martin Fjordvald
1
A ramificação 5.3 já a possui, então apenas ./configure --enable-fpm e pronto.
Vladislav Rastrusny