[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: iptables + apache em abaixo do Firewall



>>>>> "Pedro" == Pedro Eugênio Rocha <pedro.eugenio.rocha@gmail.com> writes:
    Pedro> Você pode criar duas entradas no dns, por exemplo:

    Pedro> teste  IN  A   10.1.1.1
    Pedro> teste  IN  A   10.1.1.2

    Pedro> E no firewall você direciona as conexões para "teste". A cada consulta o
    Pedro> dns vai retornar um ip diferente.

Mas round-robin vai distribuir a carga e exigir que ambos os servers
apache sejam idênticos (senão o usuário final vai ver dois sites
arbitrariamente diferentes no mesmo hostname), se for servir dois
sistemas diferentes, não pode usar round-robin.

Com o apache, tendo as entradas corretas de DNS (site1.com.br e
site2.com.br apontando pro mesmo IP onde fica o firewall), você pode
usar uma combinação de Proxy e Virtual Hosts para servir sistemas
diferentes no mesmo IP, vide
http://httpd.apache.org/docs/2.0/vhosts/examples.html#proxy

Então seriam 3 apaches, dois escutando em portas ou ips diferentes, e um
pra fazer o proxy reverso da requisição.

Algo asssim [1]:

,----[ apache proxy em 192.168.111.1 ]
| <VirtualHost 192.168.111.1>
|   ProxyPreserveHost On
|   ProxyPass / http://192.168.111.101/
|   ProxyPassReverse / http://192.168.111.101/
|   ServerName site1.com.br
| </VirtualHost>
|
| <VirtualHost 192.168.111.1>
|   ProxyPreserveHost On
|   ProxyPass / http://192.168.111.102/
|   ProxyPassReverse / http://192.168.111.102/
|   ServerName site2.com.br
| </VirtualHost>
`----

,----[ apache servindo site1.com.br no ip 192.168.111.101 ]
| <VirtualHost 192.168.111.101>
|   ServerName site1.com.br
|   DocumentRoot /var/lib/www/site1
| </VirtualHost>
`----

,----[ apache servindo site2.com.br no ip 192.168.111.102 ]
| <VirtualHost 192.168.111.102>
|   ServerName site2.com.br
|   DocumentRoot /var/lib/www/site2
| </VirtualHost>
`----

Esse tipo de coisa é bem melhor centralizar na mesma camada, fica mais
fácil de manter. Por exemplo, pra servir um site3.com.br no mesmo apache
que o site2.com.br é só acrescentar:

,----[ apache servindo site3.com.br no ip 192.168.111.102 ]
| <VirtualHost 192.168.111.102>
|   ServerName site3.com.br
|   DocumentRoot /var/lib/www/site3
| </VirtualHost>
`----

[1] - Não testei as configurações acima, talvez precisem de algum ajuste
pra funcionar, como de praxe, YMMV.

-- 
Eden Cardim
Software Engineer
edencardim.com
+55 73 9986-3963


Reply to: