我正在按照两个教程(1 和 2)在我的服务器上设置两个域,但经过多次尝试,我无法弄清楚如何让两个域都正常工作以及如何将 www 重定向到非 www。 目前,使用相同的服务器 block 文件和 DNS 记录,两者都以不同的方式工作,我认为它可能是某种缓存,但我不知道为什么会这样。 服务器 block 文件是:
server {
listen 80;
listen [::]:80;
server_name domain.com;
root /var/www/domain.com/html;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
并且两者具有相同的 DNS 记录:
A Record | @ | VPS IP
A Record | www | VPS IP
问题是域无法正常工作。
- “domain1.com”不起作用(Chrome 上的 DNS_PROBE_FINISHED_NXDOMAIN 错误)。
- “www.domain1.com”重定向到默认页面(设置为默认的 block 服务器)而不是正确的页面(domain1 的 block 服务器文件中的页面)
- “domain2.com”工作正常。
- “www.domain2.com”无效 (DNS_PROBE_FINISHED_NXDOMAIN)。
我重新启动了 nginx 和 VPS,但它们仍然以不同的方式工作(正如我所描述的)。
最佳答案
我终于找到了一种方法。
这是我已经证明过的服务器 block 配置,但与其他 DNS(过去)一起使用,所以现在它使用以下组合:
DNS 记录(同上):
A Record | @ | VPS IP
A Record | www | VPS IP
服务器 block 配置:
server {
listen 80;
listen [::]:80;
server_name www.domain.com;
return 301 $scheme://domain.com$request_uri;
}
server {
listen 80;
listen [::]:80;
server_name domain.com;
root /var/www/domain.com/html;
index index.html;
}
感谢@Timilo 的建议让我再次尝试。
关于ubuntu - 如何配置nginx www和非www域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45426315/