nginx на localhost - подстановочные домены и подстановочные поддомены - PullRequest
0 голосов
/ 14 октября 2018

Я настроил nginx (и dnsmasq) для прослушивания поддомена example.test и *.example.test.Кажется, все работает нормально.Вот nginx.conf:

server {
    listen 80;
    server_name  ~(\.)?example\.test$;
...
}

Теперь я хочу ответить на все другие *.test домены из их собственного каталога на диске.Я просто не знаю, как это сделать, следующая конфигурация не работает (просто отключает вышеуказанную конфигурацию):

server {
    listen 80;
    server_name \.test;
...
}

Даже следующая конфигурация имеет тот же эффект:

server {
    listen 80;
    server_name ~(?!(\.)?example)\.test;
...
}

Оба эти конфига работают, но отключают конфигурацию * .example.test и example.test и отвечают на них так же, как и другие *.test домены.


Вот мой вопрос:

Какя могу настроить nginx, чтобы он отвечал на *.test, но отвечал на example.test и *.example.test по-другому?

1 Ответ

0 голосов
/ 14 октября 2018

После потери целого дня мне наконец удалось решить проблему.

Для тех, кто может оказаться в такой запутанной ситуации, вот решение:

# First server block for default configuration:
server {
    listen 80;
    server_name ~^[a-zA-Z0-9\-_]+\.test$; # matches domain names (e.g. anything.test)
...
}

server {
    listen 80;
    server_name  ~(\.)?example\.test$ example.test; # matches all subdomains (e.g. subdomain.example.test and sub.subdomain.example.test) as well as example.test
...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...