微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

多个域和子域的 Nginx SSL 配置

如何解决多个域和子域的 Nginx SSL 配置

我正在配置 Nginx 以将 wiki.my-domain.com 映射到端口 3000 并将 my-domain.com 重写为 wiki.my-domain.com。我想出了一个可以正常工作的配置:

  1. 创建/etc/Nginx/conf.d/Nginx.header
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;
  1. /etc/Nginx/Nginx.conf中:
        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_keyconf.d/Nginx.headerNginx.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 举报,一经查实,本站将立刻删除。