ubuntu - 如何配置nginx www和非www域

标签 ubuntu nginx server dns no-www

我正在按照两个教程(12)在我的服务器上设置两个域,但经过多次尝试,我无法弄清楚如何让两个域都正常工作以及如何将 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/

相关文章:

java编码: public interface extend remote

linux - Crontab 未运行预期脚本

python - 为 Flask 应用程序提供服务是否需要 WSGI 服务器和 HTTP 服务器?

nginx - Nginx作为Docker容器的反向代理

python - 使用 uwsgi 和 nginx 部署 Flask 应用程序

java - 处理多人游戏中的玩家闪烁

java - LibGDX 服务器线程

python - Jupyterhub 在没有 root 的情况下使用 sudo : can't run sudospawner without pw

c# - 为什么在 Linux 中使用 Mono 时找不到 System.Text.RegularExpressions?

Node.js如何设置服务器环境PORT和NODE_ENV?