首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nginx重定向到域名而不是IP地址。

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

Stack Overflow用户
提问于 2017-07-29 11:07:07
回答 2查看 14.6K关注 0票数 2

我有一个域名来自godaddy,认为它是一个www.example.com,服务器从linode (Ubuntu16.04LTS)。我有一个静态的网页,它是通过nginx通过侦听端口9000服务的,认为它是0.0.0.0:9000。

代码语言:javascript
复制
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管理器中添加了域名,还添加了设置。

在浏览器中,如果我使用0.0.0.0:9000,我的站点页面正确打开,如果我在浏览器中使用与域名example.com一起使用的域名,则域名更改为ip地址,而我的页面打开,为什么会发生这种情况,为什么我的域名要更改为IP地址,我是否遗漏了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-29 19:23:41

域名注册员的“域转发”功能表明,您已经配置了将您的域名redirect (301 Moved Permanently)配置到另一个站点--显然您必须将其配置为重定向到http://192.0.2.50/,因此,这将显示在您的浏览器中。

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

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

以上设置,您可以在您的注册程序的接口,或者,或者,通过委托域名给您的主机提供商,并随后维护那里的设置。

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

或者,如果上面的内容太复杂,另一种避免IP地址出现在浏览器中的快速方法是使用“域掩蔽”类型的转发。

票数 2
EN

Stack Overflow用户

发布于 2017-07-29 11:14:57

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

代码语言:javascript
复制
server {
    listen 80;
    server_name example.com www.example.com;

    location / {
        proxy_pass http://0.0.0.0:9000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45388550

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档