我有一个域名来自godaddy,认为它是一个www.example.com,服务器从linode (Ubuntu16.04LTS)。我有一个静态的网页,它是通过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管理器中添加了域名,还添加了设置。
在浏览器中,如果我使用0.0.0.0:9000,我的站点页面正确打开,如果我在浏览器中使用与域名example.com一起使用的域名,则域名更改为ip地址,而我的页面打开,为什么会发生这种情况,为什么我的域名要更改为IP地址,我是否遗漏了什么?
发布于 2017-07-29 19:23:41
域名注册员的“域转发”功能表明,您已经配置了将您的域名redirect (301 Moved Permanently)配置到另一个站点--显然您必须将其配置为重定向到http://192.0.2.50/,因此,这将显示在您的浏览器中。
配置域的正确方法(这将避免上述问题)是,而不是更改DNS设置
@ (意为example.com.)的记录,其类型为A,值为192.0.2.50www (意为www.example.com.)的CNAME和@类型的记录以上设置,您可以在您的注册程序的接口,或者,或者,通过委托域名给您的主机提供商,并随后维护那里的设置。
显然,为了不必指定端口号,您必须更改nginx配置才能在端口80上运行它,才能使域正常工作。
或者,如果上面的内容太复杂,另一种避免IP地址出现在浏览器中的快速方法是使用“域掩蔽”类型的转发。
发布于 2017-07-29 11:14:57
假设应用程序已经在localhost:9000上运行,您可以像这样设置反向代理。
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://stackoverflow.com/questions/45388550
复制相似问题