我有一个域名 example.ovh 和另一个域名,比如 vps-example.ovh。
我已经配置了 nginx,只https://example.ovh已送达。
在我的示例中,两个域名仍然可用(vps-example.ovh 和 example.ovh),尽管 vps-example.ovh 不是配置的一部分
server {
listen 80;
# listen [::]:80 default_server deferred;
# return 301 https://$server_name$request_uri;
return 444;
}
server {
listen 443 ssl http2;
server_name test.ovh;
include snippets/self-signed.conf;
include snippets/ssl-params.conf;
location / {
proxy_pass http://localhost:5000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
答案1
如果 Nginx 无法匹配,server_name
它将使用默认服务器。如果您希望 Nginx 执行其他操作,则需要定义“catch all”服务器块。
您可以listen 443 ssl default_server;
在第一个块中添加一条语句server
,但它需要证书。您可能可以在外部块中包含 SSL 配置,以便两个块都可以继承它server
。
include snippets/self-signed.conf;
include snippets/ssl-params.conf;
server {
listen 80 default_server;
listen 443 ssl default_server;
return 444;
}
server {
listen 443 ssl http2;
server_name example.com;
...
证书可能无效,浏览器可能会生成警告。但使用server_name
指令中未列出的任何名称将无法再访问主站点。