话不多说,直接进入主题,有三种方法,分别是:
1.子目录部署。
2.子域名绑定。
3.Nginx反向代理。
下面我将一一详细介绍三种区别和用法。(其实我个人比较推荐前两种)
第一种方法:使用子目录部署多个网站
适用场景:想通过同一个域名访问多个部署的项目,例如:
https://www.example.com/
https://www.example.com/CSDN
https://www.example.com/alibaba
创建主网站
- 登录宝塔 → 【网站】→【添加站点】
- 添加域名
www.example.com- 根目录设为
/www/wwwroot/example上传多个项目
- 将不同项目分别放在子目录中,例如:
- 主页:
/www/wwwroot/example/index.php- CSDN:
/www/wwwroot/example/CSDN/index.php- 阿里巴巴:
/www/wwwroot/example/alibaba/index.php配置伪静态(可选)
- 若有URL重写需求(如ThinkPHP),在宝塔中为每个子目录配置伪静态规则。
访问测试
- 浏览器输入:
http://www.example.com→ 主页http://www.example.com/CSDN→ 博客http://www.example.com/alibaba→ 阿里巴巴
第二种方法:使用子域名绑定多个网站
适用场景:将不同项目部署为子域名,例如:
https://www.example.com/(主页)
https://CSDN.example.com/(CSDN)
https://alibaba.example.com/(阿里巴巴)
域名解析
- 在域名服务商后台添加A记录:
@→ 解析到服务器IP(对应www.example.com)blog→ 解析到服务器IP(对应 CSDN.example.com)admin→ 解析到服务器IP(对应alibaba.example.com)添加多个站点
- 登录宝塔 → 【网站】→【添加站点】
- 分别添加:
www.example.com- CSDN
.example.comalibaba.example.com- 每个站点指向各自的网站根目录
配置SSL证书(可选)
- 如果启用HTTPS,分别为每个子域名申请或绑定SSL证书
访问测试
- 浏览器分别访问不同子域名,即可打开不同网站项目
第三种方法:使用Nginx反向代理部署多个项目
适用场景 :多个项目运行在不同端口,但希望统一通过一个域名访问,例如:
https://example.com/api → 转发到本地9000端口
https://example.com/web → 转发到本地8080端口
启动多个Web服务
- 例如:
- Node.js项目运行在
localhost:3000- Python项目运行在
localhost:5000添加主站点
- 创建站点:
example.com- 不需要上传网页文件
开启反向代理
- 登录宝塔 → 【网站】→【设置】→【反向代理】
- 添加代理规则:
名称:API代理
目标URL:
http://127.0.0.1:3000发送域名:
$host高级设置中添加规则: nginx
location /api { ``proxy_pass http://127.0.0.1:3000; }添加第二个代理(如需)
- 类似地添加
/web路径代理到其他端口访问测试
- 浏览器访问:
http://example.com/api→ Node.js项目http://example.com/web→ Python项目