Desejo configurar o arquivo de hosts do Windows para enviar solicitações de host com base no endereço IP + portas.
Por exemplo:
127.0.0.1:80 www.site1.com
127.0.0.1:8080 www.sitetwo.com
Porque eu tenho o Apache ouvindo na porta 8080 e o IIS na porta 80 (padrão).
Então, acho que a melhor maneira de fazer isso é modificar o hosts
arquivo. Não está afetando nada. Não estou recebendo nenhum erro nem mensagem.
iis
apache-2.2
Peter Mortensen
fonte
fonte
Respostas:
Você não pode. O arquivo hosts é exatamente isso - hosts. É o equivalente a um DNS "em curto-circuito" na sua máquina local. O DNS também não pode enviar você para portas.
Para conseguir o que você está tentando fazer, convém configurar a hospedagem virtual no IIS ou Apache e usá-la (com base no cabeçalho HTTP Host:) para permitir que o serviço decida qual site apresentar. Isso não ajudará você, no entanto, se você quiser fazer isso com o IIS e o Apache simultaneamente.
fonte
hosts
arquivo é apenas para resolução de nome de host<hostname>:<port>
, o padrão é port80
Cenário de problema típico
127.0.0.1
akalocalhost
(definido no arquivo hosts) .para evitar colisão entre possivelmente outros servidores existentes / em execução, o aplicativo normalmente permite alterar a porta, mas não o endereço IP.
2a Se você pudesse alterar o endereço IP do servidor para outro no espaço de endereço reservado para loopback
127.0.0.0/8
, provavelmente não tentaria definir portas no arquivo de hosts.Solução possível
Você pode contornar isso usando a ferramenta de rede incluída no Windows
netsh
como um proxy de porta.Visão geral
Ações
localhost:8081
127.65.43.21 example.app
127.0.0.0/8
pode ser usado.127.65.43.21:80
não está ocupado por outro serviço.netstat -a -n -p TCP | grep "LISTENING"
netsh interface portproxy add v4tov4 listenport=80 listenaddress=127.65.43.21 connectport=8081 connectaddress=127.0.0.1
http://example.app
Notas:
- Esses comandos / modificações de arquivos precisam ser executados com direitos de administrador
- netsh portproxy precisa de bibliotecas ipv6 mesmo para usar v4tov4; normalmente elas também serão incluídas por padrão; caso contrário, instale-as usando o seguinte comando:
netsh interface ipv6 install
Você pode ver a entrada que você adicionou com o comando:
netsh interface portproxy show v4tov4
Você pode remover a entrada com o seguinte comando:
netsh interface portproxy delete v4tov4 listenport=80 listenaddress=127.65.43.21
Links para Recursos:
Nota: esta resposta é uma duplicação da minha resposta discutida nesta pergunta / resposta semelhante no stackoverflow.
fonte
Não, você não pode. Se não estiver funcionando, algo está errado.
Presumo que isto é para uma caixa de desenvolvimento?
O DNS resolverá o site.com e o site www.site.com como host local, desde que você não faça algo como proxy de suas consultas DNS. Você provavelmente deve pedir ajuda na configuração do servidor da ServerFault, esse é o problema mais provável.
fonte
Você pode fazer isso com o Fiddler . Com o script do Fiddler , você pode fazer muitas coisas incríveis.
Se você definir hosts como este
Adicione isso no CustomRules.js (para abrir o CustomRules.js , escolha Personalizar regras no menu Regras do violinista )
Em seguida, o Fiddler converte o host e você se conecta à porta 8080.
fonte
Você está usando os servidores apenas para desenvolvimento local? Nesse caso, você pode colocar seu Apache para ouvir 127.0.0.2:80 e redirecioná-lo com o arquivo hosts para o nome de domínio que você gosta.
fonte
Como nas outras respostas, o arquivo host não possui informações de porta, mas você pode ter uma página que redirecione o viés do cabeçalho, como o apache ou o IIS faria para a hospedagem virtual baseada em nome. Verifique o cabeçalho e redirecione conforme necessário. No entanto, eu realmente não vejo o valor nisso, pois você está reinventando a roda. O Apache suporta hospedagem virtual baseada em porta e presumo que o iis suporte.
O seu objetivo é ter uma máquina de desenvolvimento com ambos executando o nosso para uma situação de produção.
fonte
Siga esses passos:
/programming/8652948/using-port-number-on-windows-xp-host-file
fonte
Isto é o que você pode fazer, seria útil apenas para o desenvolvimento local.
arquivo hosts:
No IIS, crie um novo site e para local.site1.com & local.site2.com
Instalação do IIS
Você está pronto para ir. Apenas certifique-se de que as portas que você usou não estejam sendo usadas por outro processo e também estejam abertas a partir de firewall, antivírus etc.
Depois disso, você pode usar os seguintes URLs para acessar sites da máquina local ou da LAN.
fonte