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

标签 redirect nginx dns

我有一个来自 godaddy 的域名,将其视为 www.example.com,以及来自 linode (Ubuntu 16.04 LTS) 的服务器。我有一个静态网页,通过 nginx 通过监听端口 9000 提供服务,将其视为 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域名转发设置中添加了域名。

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

最佳答案

域名注册商的“域名转发”功能建议您已将域名重定向 ( 301 Moved Permanently )到另一个站点 - 显然您必须将其配置为重定向到 http://192.0.2.50/ ,因此,这就是您的浏览器中显示的内容。


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

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

您可以在注册商界面中进行上述设置,或者通过将域名委托(delegate)给您的托管提供商,然后维护设置那里。

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


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

关于redirect - Nginx 重定向到域名而不是 IP 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45388550/

相关文章:

node.js - 使用 NginX 在 Digital Ocean 上托管多个 Node.js 应用程序

docker - Kubernetes DNS外部资源

amazon-web-services - 如何刷新 AWS 中 VPC 中的 DNS 条目?

php - 如何将 PHP 页面重定向到 IMG?

redirect - Laravel 重定向会影响跳出率吗?

python - nginx/uwsgi/flask 不在模板中使用 CSS 文件

amazon-web-services - 具有 Wix 域的 Angular AWS

php - htaccess 301 重定向 url

javascript - 有没有办法在没有 javascript 的情况下在移动应用程序上有一个完整的站点按钮?

python - nginx:[警告] 0.0.0.0:80 上的冲突服务器名称 "example.com",已忽略