Tenho um aplicativo implantado em uma VM do Azure usando um servidor web Nginx. O aplicativo usa supervisor para configurar os servidores Nginx e gunicorn. Verifiquei todos os arquivos de configuração e log e tudo parece estar funcionando bem. No entanto, quando aponto um navegador para o site, o navegador atinge o tempo limite para www.meudominio.com e para meudominio.com retorna:
This site can’t be reached
mydomain.com’s server DNS address could not be found.
No Azure, configurei uma zona DNS contendo:
Name: @ TYPE: NS TTL: 120 VALUE: relevant azure name servers.
Name: www TYPE: CAME TTL 60 mydomain.com
No registrador de domínio, configurei os nomes DNS de acordo com os nomes DNS do Azure.
Na minha máquina local eu tenho:
Liberou o cache do navegador. verificado nslookup www.mydomain.com
Server: 127.0.1.1
Address: 127.0.1.1#53
Non-authoritative answer:
Name: www.mydomain.com
Address: xxx.xxx.xx.xx
tentei traceroute, os endereços xxx.msn.net foram localizados sem nenhum [fechado], então presumo que o servidor foi encontrado.
testado:
host -t A www.mydomain.com
>>www.mydomian.com is an alias for mydomain.themsazureaddress.com
>>mydomain.themsazureaddress.com has address xxx.xxx.xx.xx
No servidor web eu tenho:
tentei netcat:
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 *:http *:* LISTEN
tcp 0 0 *:ssh *:* LISTEN
tcp 0 0 *:https *:* LISTEN
tcp 0 0 localhost:8000 *:* LISTEN
tcp 0 0 localhost:6379 *:* LISTEN
e netstat:
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 62133/nginx
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 62133/nginx
verifiquei a configuração do nginx:
upstream app_server_wsgiapp {
server localhost:8000 fail_timeout=0;
}
server {
listen 80;
server_name myapp.com;
rewrite ^(.*) https://$server_name$1 permanent;
}
server {
server_name myapp.com;
listen 443 ssl;
Erro nginx verificado e logs de acesso:
os logs de acesso estão vazios, o log de erros contém apenas:
epoll add event: fd:11 op:1 ev:00000001
Também verifiquei os processos e o supervisor, gunicorn, redis, celery estão todos funcionando bem. Estou apenas usando o sqlite, então não preciso me preocupar com a configuração do banco de dados.
Alguma outra sugestão para duplicar por que não consigo ver o aplicativo?
Responder1
O NSG estava ausente na configuração da VM do usuário.
Um grupo de segurança de rede (NSG) contém uma lista de regras de lista de controle de acesso (ACL) que permitem ou negam o tráfego de rede para suas instâncias de VM em uma rede virtual.
Os NSGs podem ser associados a sub-redes ou a instâncias de VM individuais nessa sub-rede. Quando um NSG está associado a uma sub-rede, as regras ACL aplicam-se a todas as instâncias de VM nessa sub-rede. Além disso, o tráfego para uma VM individual pode ser ainda mais restrito associando um NSG diretamente a essa VM.
Configurando NSGs no Portal do Azure:
https://docs.microsoft.com/en-us/azure/virtual-network/virtual-networks-create-nsg-arm-pportal