我有一个使用Nginx Web服务器部署在Azure虚拟机上的应用程序。 应用程序使用主pipe设置Nginx和gunicorn服务器。 我已经检查了所有的configuration和日志文件,似乎都工作正常。 但是,当我指向浏览器在网站浏览器时间为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名称。
在我的本地机器上,我有:
刷新浏览器上的caching。 检查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地址找不到任何[closures],所以我认为服务器被发现。
尝试:
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
在Web服务器上我有:
试过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
检查了nginxconfiguration:
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
我也检查过程和主pipe,gunicorn,redis,芹菜都运行OK。 我只是使用SQLite,所以我不需要担心数据库设置。
任何其他的build议,为什么我不能看到应用程序的dubugging?
用户虚拟机configuration中缺lessNSG。
networking安全组(NSG)包含访问控制列表(ACL)规则的列表,允许或拒绝到虚拟networking中的VM实例的networkingstream量。
NSG可以与该子网内的子网或单个VM实例相关联。 当NSG与子网关联时,ACL规则将应用于该子网中的所有VM实例。 另外,通过将NSG直接关联到该VM,可以进一步限制到单个VM的stream量。
在Azure Portal中configurationNSG:
https://docs.microsoft.com/en-us/azure/virtual-network/virtual-networks-create-nsg-arm-pportal