代码之家  ›  专栏  ›  技术社区  ›  JustAnotherCoder

如何配置nginx www和非www域

  •  1
  • JustAnotherCoder  · 技术社区  · 7 年前

    1 2 )为了在我的服务器上设置两个域,但在多次尝试之后,我不知道如何使这两个域都工作,并且www重定向到非www。 目前,使用相同的服务器块文件和DNS记录,两者以不同的方式工作,我认为这可能是一些缓存,但我不知道为什么。 服务器块文件包括:

    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\u PROBE\u FINISHED\u NXDOMAIN错误)。
    • “www.domain1.com”重定向到默认页面(设置为默认的块服务器),而不是正确的页面(位于domain1的块服务器文件中)
    • “域名2.com”运行良好。
    • “www.domain2.com”不工作(DNS\u PROBE\u FINISHED\u NXDOMAIN)。

    我重新启动了nginx和VPS,但它们仍然以不同的方式工作(如我所述)。

    1 回复  |  直到 7 年前
        1
  •  0
  •   JustAnotherCoder    7 年前

    这是一种我已经证明过的服务器块配置,但使用了其他DNS(过去),因此现在它正在使用以下组合:

    DNS记录(同上):

    A Record | @ | VPS IP
    A Record | www | VPS IP
    

    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的建议,让我再次尝试。