【问题标题】:how dose nginx server_name works剂量 nginx server_name 如何工作
【发布时间】:2019-06-17 14:26:26
【问题描述】:

我有两个网站,一个是server1.example.com,另一个是server2.example.com。所以我在nginx_config添加了两台服务器

server{
        listen  80;
        server_name server1.example.com;
        location / {
            proxy_pass http://127.0.0.1:9090;
        }
    }

    server{
        listen  80;
        server_name server2.example.com;
        location / {
            proxy_pass http://127.0.0.1:9091;
        }
    }

效果很好

如果我删除其中一个,结果不符合我的期望。 当我删除server2.example.com的conf

    server{
        listen  80;
        server_name server1.example.com;
        location / {
            proxy_pass http://127.0.0.1:9090;
        }
    }

    # server{
    #     listen  80;
    #     server_name server2.example.com;
    #     location / {
    #         proxy_pass http://127.0.0.1:9091;
    #     }
    # }

当我访问server2 时,我想我会得到404500 http 代码。但我得到了server1的回复

为什么?

【问题讨论】:

    标签: nginx nginx-config


    【解决方案1】:

    server_name 让位于使用不同的虚拟名称,对于 nginx 来说是查看哪个部分服务器。

    如果没有部分匹配它,那么nginx 将使用第一个声明的服务器。在这种情况下,您是server1.example.com。或者您可以使用 default_server 关键字覆盖它。

    server{
       listen  80 default_server;
       server_name server1.example.com;
       location / {
           proxy_pass http://127.0.0.1:9090;
       }
    }
    

    您应该查看以下网址了解更多详情

    http://nginx.org/en/docs/http/request_processing.html

    【讨论】:

      猜你喜欢
      • 2013-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-02
      • 1970-01-01
      • 2021-02-20
      • 1970-01-01
      • 2016-04-28
      相关资源
      最近更新 更多