Nas seções anteriores configuramos um servidor dedicado WebSockets (HyperServer) e o testamos com um aplicativo de teste. O servidor dedicado foi executado nas portas 8077 e 8078 para conexões não seguras e seguras. Aqui executamos o mesmo servidor nas portas padrão HTTP/HTTPS (80 e 443). Algumas redes proíbem portas não padrão ou alguns clientes não conseguem acessá-las, então usar portas padrão pode ser necessário.
Abaixo estão as etapas e alterações de configuração necessárias para executar o HyperServer nas portas padrão mantendo o IIS em execução na mesma máquina.
1
1. Alterar a configuração do HyperServer para usar as portas padrão
Edite seu arquivo CFG do HyperServer e defina:
[hyper_server]
port=80
No arquivo de configuração SSL defina:
SSL.SSLPort = 443
Em seguida, execute o HyperServer dedicado para ver o que acontece.
2
2. Observe falha de ligação se o IIS estiver usando as portas padrão
Se o IIS já estiver ouvindo nas portas 80 e 443, o HyperServer não conseguirá vincular-se a essas portas e exibirá um erro (HyperServer unable to bind). Exemplo de captura de tela:
https://unigui.com/doc/online_help/clip0281.png
3
3. Planeje executar IIS e HyperServer nas mesmas portas, mas em endereços IP diferentes
Se você não puder desativar o IIS, pode vincular o IIS e o HyperServer a endereços IP diferentes. Cada servidor pode escutar nas mesmas portas, mas em IPs separados.
Neste exemplo:
A interface de rede existente tem IP 192.168.1.4.
Adicionamos um IP secundário 192.168.1.5 à interface (manualmente via configurações de rede).
Captura de tela após adicionar o IP secundário:
https://unigui.com/doc/online_help/clip0282.png
4
4. Configure o HyperServer para vincular-se apenas ao novo IP
No arquivo CFG do HyperServer defina:
[hyper_server]
bindings=192.168.1.5
Isso faz o HyperServer escutar apenas em 192.168.1.5. No entanto, o IIS ainda pode estar vinculado a todos os IPs (0.0.0.0) e, portanto, ainda ocupar 192.168.1.5. Verifique com netstat — as portas 80 e 443 podem aparecer vinculadas a 0.0.0.0 significando todos os IPs:
https://unigui.com/doc/online_help/clip0283.png
5
5. Restrinja o IIS a endereços IP específicos usando netsh
Abra um prompt de comando elevado (Administrador) e adicione os endereços IP que você quer que o IIS use para seus serviços:
Pare o serviço HTTP (isso irá parar serviços dependentes):
net stop http /y
Captura de tela:
https://unigui.com/doc/online_help/clip0285.png
Inicie o Serviço de Publicação na World Wide Web:
net start w3svc
Captura de tela:
https://unigui.com/doc/online_help/clip0286.png
7
7. Verifique se o IIS está vinculado apenas aos IPs selecionados
Use o netstat para verificar se as portas 80 e 443 estão vinculadas apenas a 127.0.0.1 e 192.168.1.4 (não a 192.168.1.5). Exemplo:
https://unigui.com/doc/online_help/clip0287.png
Você também pode mostrar a lista iplisten com:
netsh http show iplisten
Captura de tela:
https://unigui.com/doc/online_help/clip0322.png
8
8. Execute o HyperServer; agora ele deve vincular-se a 192.168.1.5 nas portas 80/443
Após o IIS ser restringido aos IPs acima, inicie a instância dedicada do HyperServer. Se for bem-sucedido, não haverá erro de vínculo. Teste em um navegador:
http://192.168.1.5/@info
Captura de tela:
https://unigui.com/doc/online_help/clip0289.png
9
9. Atualize o arquivo hosts para mapear o domínio ao IP do HyperServer (opcional, mas recomendado)
Se você anteriormente redirecionou um domínio (socket.fmsoft.net) para 127.0.0.1, atualize-o para apontar para o IP do HyperServer (192.168.1.5). Edite:
A ausência de números de porta na URL indica que o servidor está vinculado às portas padrão HTTP/HTTPS.
11
11. Reconfigure o aplicativo de teste para usar o servidor dedicado
Como o HyperServer agora usa portas padrão, atualize a configuração do aplicativo de teste:
Defina ExternalServerUrl para:
http://socket.fmsoft.net (Você também pode usar http://192.168.1.5, mas usar um domínio é preferível.)
Defina GlobalBinding para:
socket.fmsoft.net
Captura de tela mostrando a configuração do app de teste:
https://unigui.com/doc/online_help/clip0293.png
Você pode definir a porta do aplicativo de teste de volta para o padrão uniGUI 8077 porque essa porta não é mais usada pelo servidor WebSockets dedicado:
https://unigui.com/doc/online_help/clip0295.png
12
12. Verifique se o aplicativo de teste funciona com o servidor dedicado nas portas padrão
Após as mudanças, o aplicativo de teste conecta-se ao servidor dedicado executando nas portas HTTP padrão. Capturas de tela de exemplo:
Resumo: Ao adicionar um IP secundário à interface de rede do servidor, restringir o IIS a IPs específicos usando netsh iplisten e configurar o HyperServer para vincular-se ao IP secundário, você pode executar IIS e HyperServer lado a lado nas mesmas portas padrão (80 e 443).