Azure VM에 배포된 Nginx 애플리케이션에 대한 DNS 시간 초과 디버그

Azure VM에 배포된 Nginx 애플리케이션에 대한 DNS 시간 초과 디버그

Nginx 웹 서버를 사용하여 Azure VM에 애플리케이션을 배포했습니다. 애플리케이션은 감독자를 사용하여 Nginx 및 gunicorn 서버를 설정합니다. 모든 구성과 로그 파일을 확인한 결과 모두 정상적으로 작동하는 것 같습니다. 그러나 웹 사이트에서 브라우저를 가리키면 브라우저는 www.mydomain.com 및 mydomain.com에 대해 시간 초과되어 다음을 반환합니다.

This site can’t be reached
mydomain.com’s server DNS address could not be found.

Azure에서는 다음을 포함하는 DNS 영역을 설정했습니다.

Name: @ TYPE: NS TTL: 120 VALUE: relevant azure name servers.
Name: www TYPE: CAME TTL 60 mydomain.com

도메인 등록 기관에서 Azure DNS 이름에 따라 DNS 이름을 설정했습니다.

내 로컬 컴퓨터에는 다음이 있습니다.

브라우저에서 캐시를 플러시했습니다. 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

Traceroute를 시도해보니 xxx.msn.net 주소가 [닫힘] 없이 위치되어 있어서 서버를 찾은 것으로 추정됩니다.

시험을 마친:

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

웹 서버에는 다음이 있습니다.

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 

그리고 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

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;

nginx 오류 및 액세스 로그를 확인했습니다.

액세스 로그는 비어 있고 오류 로그에는 다음 내용만 포함됩니다.

epoll add event: fd:11 op:1 ev:00000001

또한 프로세스와 감독자, gunicorn, redis, celery가 모두 정상적으로 실행되는지 확인했습니다. 저는 단지 sqlite를 사용하고 있으므로 데이터베이스 설정에 대해 걱정할 필요가 없습니다.

응용 프로그램을 볼 수 없는 이유에 대한 더빙에 대한 다른 제안 사항이 있습니까?

답변1

사용자 VM 구성에 NSG가 누락되었습니다.

NSG(네트워크 보안 그룹)에는 Virtual Network의 VM 인스턴스에 대한 네트워크 트래픽을 허용하거나 거부하는 ACL(액세스 제어 목록) 규칙 목록이 포함되어 있습니다.

NSG는 서브넷 또는 해당 서브넷 내의 개별 VM 인스턴스와 연결될 수 있습니다. NSG가 서브넷과 연결되면 ACL 규칙이 해당 서브넷의 모든 VM 인스턴스에 적용됩니다. 또한 NSG를 해당 VM에 직접 연결하여 개별 VM에 대한 트래픽을 추가로 제한할 수 있습니다.

Azure Portal에서 NSG 구성:

https://docs.microsoft.com/en-us/azure/virtual-network/virtual-networks-create-nsg-arm-pportal

관련 정보