Я использую Nginx в качестве обратного прокси.Он работает как контейнерный сервис в кластере Swarm.
Некоторое время назад я обнаружил это странное поведение и пытаюсь обернуть его вокруг.
На моем хосте у меня тринастройка поддоменов:
one.domain.com
two.domain.com
three.domain.com
В моей конфигурации сервера Nginx я указываю, что имя сервера, на которое я нацеливаюсь, - это three.domain.com, поэтому я ожидаю, что Nginx будет отвечать только на запросы, нацеленные на этоsubdomain.
events { worker_connections 1024; }
http {
upstream service {
server node:3000;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name three.domain.com;
[...... ssl settings here.......]
location / {
proxy_pass http://service;
proxy_set_header Host $host;
}
}
}
То, что происходит вместо того, чтобы отвечать только на запросы, отправленные на three.domain.com, оно также отвечает на one.domain.com и two.domain.com.(он направляет их на three.domain.com)
Если я добавлю несколько серверных блоков, специально предназначенных для поддоменов один и два, он будет работать как положено, он направит запросы туда, где они принадлежат.
ТоПри этом идеальным поведением было бы отвечать только на субдомены, перечисленные в разделе server_name серверного блока.