Я настроил три серверных блока на моем сервере nginx: 2 прослушивания на 80 (http) и один прослушивание на 443 (https).
Файл конфигурации блока https для сервера выглядит следующим образом:
server {
server_name foo.example.com;
location / {
root /var/nginx_root/yt/html;
index index.html index.htm;
}
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/........ # managed by Certbot
ssl_certificate_key /etc/...... # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/.......
}
server {
if ($host = foo.example.com {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
server_name foo.example.com;
return 404; # managed by Certbot
}
В блоках сервера http тоже задано имя_сервера.
Эти блоки сервера работают хорошо, но если я введу любой URL-адрес https, отличный от определенного в блоке сервера https, он будет перенаправлен наhttps://foo.example.com!
Например, если я введу https: blabla.example.com, он будет перенаправлен на https: foo.example.com
Кажется, что, поскольку существует только одинБлок https, все запросы https идут на этот, независимо от имени_сервера!
Что мне нужно, так это то, что если я введу https: blabla.example.com, он вернет 404, поскольку блока с этим именем_сервера не существует.
Спасибо