如何解决多个域和子域的 Nginx SSL 配置
我正在配置 Nginx 以将 wiki.my-domain.com
映射到端口 3000 并将 my-domain.com
重写为 wiki.my-domain.com
。我想出了一个可以正常工作的配置:
listen 80;
listen 443 ssl;
if ($scheme != https) {
rewrite ^/(.*) https://$server_name/$1 permanent;
}
ssl_certificate /path/to/certificate.pem;
ssl_certificate_key /path/to/certificate_key.pem;
ssl_session_timeout 5m;
server {
server_name my-domain.com;
include /etc/Nginx/conf.d/Nginx.header;
rewrite ^/(.*) https://wiki.my-domain.com/$1 permanent;
}
server {
server_name wiki.my-domain.com;
include /etc/Nginx/conf.d/Nginx.header;
location / {
proxy_pass http://localhost:3000/;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_connect_timeout 300;
proxy_send_timeout 300;
proxy_read_timeout 300;
}
}
但是,由于我计划在未来添加更多子域,并且 conf.d/Nginx.header
中的 SSL 证书密钥仅用于 wiki.my-domain.com
,因此我移动了描述 ssl_certificate
和 { {1}} 从 ssl_certificate_key
到 conf.d/Nginx.header
。 Nginx.conf
变为:
Nginx.conf
在此更改并重新加载 Nginx 后,我无法访问托管在 server {
server_name my-domain.com;
include /etc/Nginx/conf.d/Nginx.header; # eliminated description of ssl_certification
rewrite ^/(.*) https://wiki.my-domain.com/$1 permanent;
}
server {
server_name wiki.my-domain.com;
include /etc/Nginx/conf.d/Nginx.header; # eliminated description of ssl_certification
ssl_certificate /path/to/certificate.pem;
ssl_certificate_key /path/to/certificate_key.pem;
location / {
# Same as above
}
}
上的网页,并且 wiki.my-domain.com
在我的浏览器中不再重写为 my-domain.com
。我该如何解决这个问题?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。