O site sobre HTTPS fornece erro 502 na VM do Azure por trás do balanceador de carga pública

1

Eu tenho uma VM do Azure atrás de um Balanceador de carga público do Azure. A VM está executando um site. Eu posso carregar o site em um navegador via HTTP sem problemas, mas quando eu tento HTTPS recebo um erro 502.

Eu tenho uma regra de balanceamento de carga configurada para enviar 443 para a VM. Eu permito todas as conexões no 443 através de um grupo de segurança de rede. Já verifiquei três vezes a configuração e observei isso por horas, mas não consigo fazer nenhum progresso.

Uma pista adicional é que se eu for remoto na VM, defina meu nome DNS para apontar para o IP interno da VM (10.1.2.4 em vez de apontar para o IP público do balanceador de carga) e carregue o site em um navegador via HTTPS funciona. Não tenho certeza do que isso significa, a não ser que a configuração do IIS não seja o problema.

Quaisquer pensamentos seriam extremamente apreciados e ficarei feliz em fornecer mais detalhes. Obrigado!

EDIT 1
No meu Balanceador de carga do Azure, quando excluí minha regra de balanceamento de carga HTTPS, adicionei uma regra NAT redirecionando o tráfego 443 diretamente para uma de minhas VMs, e o HTTPS funcionou perfeitamente. Por isso, parece ser algo específico para minha configuração usando HTTPS com uma regra de balanceamento de carga.

    
por NorthFork 31.03.2016 / 07:23

1 resposta

1

Eu finalmente descobri a questão, espero que isso economize alguém mais algumas horas. O problema acabou sendo uma combinação das configurações do meu probe balanceador de carga e das ligações do IIS para meus sites.

No IIS nas VMs, eu tenho 2 sites configurados. Como os dois sites compartilham um IP público, estou usando um nome de host ao configurar as ligações no IIS. Então, basicamente, minhas ligações estão configuradas para enviar o tráfego www.site.com para o site nº 1 e o tráfego test.site.com para o site nº 2. Não configurei uma ligação padrão para lidar com o tráfego da porta 80 com um nome DNS diferente daqueles 2. Portanto, se você acessar link , não há nenhuma página fica carregado porque não há uma ligação para lidar com isso.

Meu teste era um conjunto de probes de HTTP para atingir /probe.html na porta 80. O problema é que o teste provavelmente atinge o link uma vez que a sonda não sabe nada sobre os nomes DNS que eu uso, e essa URL não tem uma ligação para lidar com isso no IIS. Portanto, a análise estava falhando e assumindo que todas as minhas VMs estavam off-line. Isso resultou no erro 502.

Não tenho certeza sobre qual correção vou fazer ainda. Vou adicionar uma ligação padrão para a porta 80 no IIS que aponte para o site de produção, ou usarei uma sonda TCP.

O que realmente me deu um loop é que o HTTP funcionou bem como mencionei acima. Eu devo ter acontecido para ter uma ligação padrão do IIS no lugar ao testar HTTP e, em seguida, removido antes de testar HTTPS. Agora sem um probe válido, HTTP e HTTPS falham. Com um teste válido, ambos funcionam.

    
por 31.03.2016 / 17:45

Tags