Por que usar o Apache na frente de outro servidor web?

6

Eu já vi muitas configurações de servidor da web onde o Apache está na frente de outro servidor da web. Os exemplos mais proeminentes desses são os servidores da Web Java, por exemplo, Glassfish, Tomcat, etc. Qual é o sentido disso? Eu percebo que o ponto de colocar o Apache na frente, digamos, de um cluster Mongrel é o balanceamento de carga, mas e os outros servidores? Quais são as razões para fazer isso?

    
por Sasha Chedygov 14.06.2009 / 04:56

2 respostas

11

Os servidores de aplicativos da Web são bons para hospedar seus aplicativos (Ruby, Java, etc), mas não tão bons quanto o Apache para hospedar arquivos estáticos ou fornecer balanceamento de carga / failover ( mod_proxy ), segurança / filtragem ( mod_security ), reescrevendo ( mod_rewrite ) etc. Por isso é bastante comum usar o Apache como front-end, possivelmente servindo todos o conteúdo estático e, em seguida, os pedidos de proxy para o servidor de aplicativos (mongrel, tomcat, etc).

O Apache é um trecho de código bem auditado que "tem andado por aí" um pouco mais do que os servidores mais recentes, por isso faz sentido tê-lo como o servidor que enfrenta a Internet não confiável. Isso também significa que você pode colocar seus servidores de aplicativos dentro de sua rede e seus servidores Apache em sua DMZ.

    
por 14.06.2009 / 05:21
0

Quanto à sua outra pergunta -

Outra pergunta, então: Se eu fizesse isso com um servidor Java por trás do Apache, usaria várias instâncias?

Depende :) Como é a carga? Qual é o uso de memória como? Como você os distribuiria - vários servidores de aplicativos Java na mesma caixa? Caixas diferentes? A configuração apropriada depende do problema que você está tentando resolver.

    
por 16.06.2009 / 18:59