как работает доза nginx имя_сервера - PullRequest
0 голосов
/ 17 июня 2019

У меня есть два веб-сайта, один - 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;
        }
    }

Он хорошо работает

server1 server2

, если я удалю один из них, результат не будетоправдать мои ожиданияКогда я удаляю conf server2.example.com

    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, я думаю, что получу 404 или 500 http-код.Но я получаю ответ от server1

server2

почему?

1 Ответ

0 голосов
/ 17 июня 2019

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;
   }
}

Для более подробной информации вы должны увидеть нижеприведенный URL

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

...