- A+
在Nginx给多个域名配置https的提前,我们先购买申请多域名SSL证书。待颁发多域名SSL证书之后,下载证书文件,保存为pem 和 key文件,上传至服务器。
接下来,我们就可以在Nginx给多个域名配置https,方法如下:
首先, 需要把 http 都转发到 https, 需要使用 rewrite, 这样, 当访问 http://example.cn 会自动转发到 https://example.cn。这时候有多少域名配置几个:
server {
listen 80; # redirect to 443
server_name AAA.example.cn www.AAA.example.cn;
rewrite ^(.*)$ https://$host$1 permanent;
}server {
listen 80; # redirect to 443
server_name BBB.example.cn www.BBB.example.cn;
rewrite ^(.*)$ https://$host$1 permanent;
}
虽然域名不同, 但都监听 443 端口, 但有着不同的 server_name, 这样当收到请求时就可以根据请求的 server_name 不同来转发到不同的服务,而服务自身像往常一样只要继续监听 8090、8091 即可。
server {
listen 443 ssl;
server_name AAA.example.cn www.AAA.example.cn;ssl_certificate “/home/yushan/demontf/2076603_AAA.example.cn.pem”;
ssl_certificate_key “/home/yushan/demontf/2076603_AAA.example.cn.key”;location / {
proxy_pass http://127.0.0.1:8090;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_redirect default;
}
}server {
listen 443 ssl; # redirect to https
server_name BBB.example.cn www.BBB.example.cn;ssl_certificate “/home/yushan/demontf/2005538_BBB.example.cn.pem”;
ssl_certificate_key “/home/yushan/demontf/2005538_BBB.example.cn.key”;location / {
proxy_pass http://127.0.0.1:8091;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_redirect default;
}
}
最后一步重启 Nginx 就可以啦!
(本文由美国主机资讯原创,转载请注明!)
- 我的微信
- 这是我的微信扫一扫
- 我的微信公众号
- 我的微信公众号扫一扫