我有一个来自 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/