Nginx的重定向到的域名,而不是IP地址

问题描述:

我从GoDaddy的域名认为它作为一个www.example.com,而从的Linode(Ubuntu的16.04 LTS)服务器。我有一个静态网页,它是通过Nginx是由侦听端口9000提供服务,把它作为0.0.0.0:9000。Nginx的重定向到的域名,而不是IP地址

server { 
    root /home/webapps/mysite; 
    index index.html index.htm; 

    listen 0.0.0.0:9000; 
    server_name example.com www.example.com; 

    location/{ 
     try_files $uri $uri/ /index.html; 
    } 
} 

我在的Linode DNS管理员添加的域名并加入GoDaddy的域名前冲。

在浏览器中,如果我使用0.0.0.0:9000我的网站页面打开正确,如果我用的域名使用example.com在浏览器域名更改为IP地址并打开我的网页,为什么正在发生的事情是这样,为什么我的域名被变回IP地址,我错过了什么?

“域名向前”域名注册机构的特征表明,你已经配置为拥有自己的域名redirect301 Moved Permanently)到另一个网站 - 你显然必须配置它重定向到http://192.0.2.50/,因此,这就是将在浏览器中显示出来。


配置域(这将避免您遇到上述问题)的正确方法是而不是更改DNS设置

  • 添加一个名为@记录(意思是example.com.),其类型为A,值为192.0.2.50
  • 添加www(意思是,www.example.com.)类型的记录CNAME和价值@

以上设置,您可以与您的注册,或,或者的界面中进行,通过委托域名您的托管服务提供商,并随后保持设置在那里。

显然,为了不必指定端口号,你必须改变你的nginx的配置在端口80上运行它正常工作的域。


备选地,如果上面的是太复杂了,另一个快速的方法来避免从显示在浏览器中向上的IP地址是使用“域掩蔽”转发类型。