本次案例环境,阿里云ecs+centos stream8 +宝塔面板+niginx1.2+
假设服务器里有项目A和项目B两个项目均已部署正常,A端口80,B端口85
域名为http://www.xyz.com默认已经绑定A项目,可以通过http://www.xyz.com:85访问B
宝塔ssl面板 let’s Encrypt申请证书,绑定域名实现https访问。
默认https://www.xyz.com是访问项目A
而要单独通过https://www.xyz.com访问B项目的方式有两种:
1.通过参数跳转,类似 https://www.xyz.com/B来访问B项目
此中方法需要在A的站点设置面板里面配置文件server段落里添加
location ^~/B/ {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://www.xyz,com:85;
}
但是感觉用的不爽(总感觉不对劲先记录,极力推荐方法2)
2.通过复用ssl证书+监听不同端口请求实现(因为ssl证书绑定的是域名而不是端口)
https访问不指定端口的话默认就是433端口和http默认是80一样
类似https://www.xyz,com:421来访问B项目
步骤:a.在宝塔面板站点管理界面将A已经部署ssl证书加密码复制到项目B的ssl部署界面,然后保存启用
b.(关键),修改B项目设置中的配置文件,在listen段落找到并将默认的433端口改为421然后保存,重载niginx即可通过https://www.xyz,com:421