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.

InWeb Internet
eXTReMe Tracker