Listen и default server

ingtar nginx-forum на forum.nginx.org
Ср Май 15 08:32:34 UTC 2019


Столкнулся с такой ситуацией:
Есть много разных виртуальных хостов, что висят на разных адресах у машины.
Где-то указаны конкретные IP, где-то звездочка.
При добавлении нового виртуального хоста иногда возникает ситуация, что
запросы начинают обрабатываться другими хостами, т.е. меняется логика в
обработке запросов.
Пример конфига:

server {
    listen 8000;
    server_name test1;

    location / {
        return 200 'responce from test1';
    }
}

server {
    listen 8000 default_server;
    server_name test2;

    location / {
        return 200 'responce from test2!';
    }
}

server {
    listen 8000 ;
    server_name test3;

    location / {
        return 200 'responce from test3!';
    }
}

Тут все хорошо, запросы с заголовками test1,2,3 попадают в нужные хосты, без
заголовков попадают в default
но если указать у любого listen конкретный ip, например 127.0.0.1 то все
запросы начинает обрабатывать именно он, игнорируя заголовки Host и
default_server

Чисто логически я понимаю, что у него приоритет ИП, но выглядит странно :)
Есть какие-то практики в этом случае - только ИП везде или все без ИП?

Posted at Nginx Forum: https://forum.nginx.org/read.php?21,284170,284170#msg-284170



Подробная информация о списке рассылки nginx-ru