![]() Computadores |
![]() Dicas e Links |
![]() Programas e Programação |
| Dicas | ![]() |
Fazendo o IIS 6 responder por apenas um IP
Se você trabalha com servidor de hospedagens, pode já ter tido a necessidade de colocar dois IPs na máquina e fazer com que cada IP respondesse por um webserver, por exemplo, o primeiro IP responder pelo IIS e o segundo IP responder por um outro webserver como o Apache ou outro serviço que necessite rodar na porta HTTP (80).
O grande problema é que o IIS 6, que vem junto com o Windows 2003 e XP, vêm configurado para ouvir na porta 80 de todos os IPs configurados, o que denominamos tecnicamente de "0.0.0.0:80". Com isso você não poderia usar o Apache para estar apto a receber conexões no outro IP a não ser que mudasse para outra porta, como 81 ou 8080.
Infelizmente a configuração para deixar o IIS apenas recebendo conexões em um IP só não é muito simples. Você precisa ajustar uma variável do chamado "metabase" (que guarda as configurações do IIS) e depois executar um programa para definir os IPs. Para ajustar a variável, vamos rodar um script em VBScript que está no drive C, dentro da pasta "Inetpub" e depois em "Adminscripts". Acesse esta pasta pelo Prompt do DOS e em seguida digite:
cscript adsutil.vbs set w3svc/disablesocketpooling true
Isso deve gerar uma mensagem "disablesocketpooling: (BOOLEAN) True" confirmando a operação. Em seguida você precisará de um aplicativo chamado httpcfg que pode ser encontrado no CD do Windows instalando o arquivo suptools.msi (Tools). Após instalar, abra um Prompt do DOS e digite:
httpcfg set iplisten -i <IP>
trocando o "<IP>" pelo IP desejado no formato 999.999.999.999. Ele irá mostrar a mensagem "HttpSetServiceConfiguration completed with 0". Para confirmar que o IP foi ajustado com sucesso, execute:
httpcfg query iplisten
e veja se aparece o IP na lista. Em seguida, reinicie o IIS digitando "iisreset" no DOS. Ou então, mais fácil, reinicie o computador. Teoricamente tudo já esta pronto, mas você pode querer ir na interface do IIS e configurar as entradas existentes para apenas o IP desejado, ao invés do "all unassigned" padrão. Para confirmar se tudo está ok, volte ao DOS e digite:
netstat -n -a | find "LISTEN"
e você deverá ter uma linha semelhante a:
TCP 38.107.191.103:80 0.0.0.0:0 LISTENING
onde depois do "TCP" deve estar o IP público que você configurou seguido de :80. Se ainda estiver aparecendo no formato "0.0.0.0:80" é porque você errou algum passo, verifique novamente acima. Agora apenas lembre-se de fazer com que seu outro programa, que irá escutar na porta 80 mas no outro IP, também seja configurado para alocar (bind) apenas o outro IP.