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

时间:2017-07-29 11:07:08

标签: redirect nginx dns

我有来自godaddy的域名,认为它是www.example.com,服务器来自linode(Ubuntu 16.04 LTS)。我有一个静态网页,通过监听端口9000通过nginx提供服务,将其视为0.0.0.0:9000。

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 Domain Forward Setting中添加了域名。

在浏览器中,如果我使用0.0.0.0:9000,我的网站页面会正确打开,如果我在浏览器中使用域名 example.com ,域名将更改为IP地址和我的页面打开,为什么会发生这种情况,为什么我的域名会改回IP地址,我错过了什么吗?

2 个答案:

答案 0 :(得分:2)

域名注册商的 "域名转发" 功能表明您已配置为拥有自己的域名redirect301 Moved Permanently)到另一个网站 - 您显然必须将其配置为重定向到http://192.0.2.50/,因此,这将显示在您的浏览器中。

配置域名的正确方法(可避免上述问题)是 而是更改DNS设置

  • 添加名为@的记录(含义为example.com.),其类型为A,值为192.0.2.50
  • 添加类型为www且值为www.example.com.
  • CNAME(含义为@)的记录

以上设置可以在注册商的界面中进行,也可以通过 委派 将域名提交给您的托管服务提供商,然后维护设置那里。

显然,为了不必指定端口号,您必须更改您的nginx配置才能在端口80上运行它以使域正常工作。

或者,如果上述内容过于复杂,另一种避免IP地址出现在浏览器中的快捷方法是使用 "域名屏蔽&#34 ; 转发类型。

答案 1 :(得分:0)

假设应用程序已在localhost:9000上运行,您可以像这样设置反向代理。

{{1}}

有关详细信息,请参阅https://www.digitalocean.com/community/tutorials/how-to-set-up-a-node-js-application-for-production-on-ubuntu-16-04