Configure um proxy reverso com Nginx e Apache no EC2

1

Bom dia

Atualmente, estou usando a microinstância gratuita do Amazon EC2 para aprender Linux e configuração de servidor.

Desejo configurar o Nginx como um proxy da web reverso. Eu encontrei um ótimo artigo sobre mediatemple sobre como fazer isso: link

As instruções funcionam para a maioria dos servidores, exceto para EC2. Uma diferença entre o EC2 e o MediaTemple é como os IPs funcionam. As instâncias globais do EC2 não conhecem o seu IP elástico. Então, ao seguir as direções do wiki nos hosts virtuais, por exemplo, em vez de myip: 80, por exemplo, coloco *: 80. Quando apenas usando o Apache isso funciona perfeitamente.

Nos hosts virtuais do Apache eu fiz "127.0.0.1:80" e no Nginx eu coloquei *: 80.

Apache reinicia, por Nginx fornece um erro que não pode vincular porque o ip já está em uso. Se eu pudesse adicionar um IP real no arquivo Nginx, funcionaria, mas como o EC2 requer que eu coloque o asterisco, ele acaba entrando em conflito com a entrada do host virtual do apache.

Alguém sabe uma maneira simples de contornar isso (além de não usar o EC2) ;-) Obrigado!

Felicidades, Christopher

    
por cchiera 08.01.2011 / 20:27

1 resposta

3

Seu problema não tem nada a ver com os Elastic IPs. A questão é que tanto o Nginx quanto o Apache não podem estar ouvindo na porta 80. A solução simples é alterar a porta que o Apache atende, 81 ou 8080 como exemplos, enquanto permite que o Nginx ouça na porta 80 (porque quando alguém tipos em seu URL, você quer que o pedido vá para o Nginx, não direto para o Apache).

Basicamente, o que você quer fazer é passar por esse tutorial, e sempre que você vê uma referência ao Apache e à porta 80, use uma porta diferente como 8080 ou 81. Então você precisa atualizar sua configuração Nginx para dizer para ela parecer para o Apache em sua nova porta.

Reinicie os dois serviços e você estará pronto.

    
por 08.01.2011 / 20:34