我有这个NGINX配置如下:
# jelastic is a wildcard certificate for *.shared-hosting.xyz
server {
listen 443;
server_name _;
ssl on;
ssl_certificate /var/lib/jelastic/SSL/jelastic.chain;
ssl_certificate_key /var/lib/jelastic/SSL/jelastic.key;
}
# fullchain2 is a certificate for custom domain
server {
listen 443 ssl;
server_name my-custom-domain-demo.xyz www.my-custom-domain-demo.com;
ssl_certificate /var/lib/nginx/ssl/my-custom-domain-demo.xyz/fullchain2.pem;
ssl_certificate_key /var/lib/nginx/ssl/my-custom-domain-demo.xyz/privkey2.pem;
}
# additional configuration for other custom domains follows
NGINX服务器接收具有类似*.shared-hosting.xyz
模式的主机的请求,例如website1.shared-hosting.xyz
,website2.shared-hosting.xyz
以及具有不同域的变量主机,如my-custom-domain-demo.xyz
或another-custom-domain-demo.xyz
等。
现在问题是较低的server
NGINX配置会覆盖上层配置。有它,鞋面不再工作,
并且访问*.shared-hosting.xyz
会返回证书错误,浏览器会告知证书仅适用于my-custom-domain-demo.xyz
。
可以做些什么,以便较低的NGINX配置触发*.shared-hosting.xyz
域,并且每个其他额外的服务器配置都不会触发
当主持人处于*.shared-hosting.xyz
模式时?
答案 0 :(得分:4)
server_name _;
无关紧要(现代版nginx
中不需要)。如果找不到匹配server
和listen
的{{1}},server_name
将使用默认服务器。
如果nginx
指令没有default_server
后缀,listen
将使用匹配nginx
的第一个server
块。
如果您的配置分布在多个文件中,那么评估顺序将不明确,因此您需要明确标记默认服务器。
尝试使用listen
服务器块:
jelastic
有关详情,请参阅this document。