我在我的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服务器块中,也设置了server_name。
这些服务器块运行良好,但是如果我输入除https服务器块中定义的以外的任何https URL,它将被重定向到https://foo.example.com!
例如,如果我输入https:blabla.example.com,则会重定向到https:foo.example.com
似乎只有一个https块,所有https请求都会转到这个,不管server_name是什么!
我需要的是,如果我输入https:blabla.example.com,则返回404,因为此server_name不存在。
由于