宝塔如何配置1个域名2个不同的项目?

在宝塔面板中,一个域名绑定两个不同的项目(例如前端和后端),可以通过以下几种方式实现。以下是常见的几种方法及详细配置步骤:


✅ 方法一:使用子路径反向X_X(推荐)

如果你希望一个域名下,比如 example.com,访问 example.com/api/ 走后端项目,而其他路径走前端项目,可以使用 反向X_X。

📌 步骤如下:

  1. 创建第一个网站项目(如前端)

    • 进入宝塔面板 → 网站 → 添加站点
    • 域名填写 example.com
    • 根目录设置为你的前端项目路径(如 /www/wwwroot/example_frontend)
    • 其他根据需要配置 PHP/伪静态等
  2. 进入该网站的【配置】页面

    • 找到“配置文件”或“反向X_X”选项卡
    • 点击【添加反向X_X】
      • 名称:可填 api_proxy
      • 请求路径:/api/
      • 目标 URL:填写你要X_X到的后端地址(如 http://127.0.0.1:8080)
      • 发送域名:留空或填后端服务期望的 Host
      • 开启“保留URI路径”
  3. 测试访问

    • 访问 example.com 会加载前端项目
    • 访问 example.com/api/xxx 会被X_X到后端服务

✅ 方法二:使用多个网站 + 同一个域名的不同子路径(通过 Nginx 配置)

如果你有两个完全独立的项目(比如前端和后端分别部署在不同端口),可以通过手动修改 Nginx 配置来实现。

📌 步骤如下:

  1. 创建两个网站

    • 第一个网站:
      • 域名:example.com
      • 端口:80 或 443
      • 根目录指向前端项目
    • 第二个网站:
      • 域名也写 example.com
      • 修改监听端口(比如 8080),作为后端项目运行的端口
      • 根目录指向后端项目(也可以用 Node.js、Java 等服务)
  2. 修改第一个网站的 Nginx 配置

    • 在配置文件中加入如下代码(匹配 /api/ 的请求转发到第二个网站):
location /api/ {
    proxy_pass http://127.0.0.1:8080;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
  1. 保存并重启 Nginx

✅ 方法三:使用二级域名(最简单)

如果你不介意使用子域名,这是最清晰的方式。

  • 前端:www.example.com
  • 后端:api.example.com

📌 步骤如下:

  1. 添加两个网站

    • 一个绑定 www.example.com,放前端项目
    • 一个绑定 api.example.com,放后端项目
  2. DNS 解析也要加上这两个域名解析到服务器 IP

这种方式结构清晰,适合大多数项目。


🔁 补充说明

方式 是否支持同域名 是否推荐 备注
子路径反向X_X ✅ 是 ✅ 推荐 使用 /api/ 等路径分发请求
多网站+Nginx配置 ✅ 是 ⚠️ 中级 需要手动配置 Nginx
二级域名 ❌ 否 ✅ 推荐 更清晰、易维护

🧪 示例场景

你有一个 Vue 前端项目运行在 80 端口,还有一个 Spring Boot 后端运行在 8080 端口,你想让访问 /api/** 走后端接口,其余走前端。

只需在前端网站的 Nginx 配置中添加如下内容即可:

location /api/ {
    proxy_pass http://127.0.0.1:8080;
    proxy_set_header Host $host;
}

如需我帮你写具体的 Nginx 配置,欢迎提供你的项目信息(比如前后端端口、是否带 HTTPS、是否需要跨域处理等)!


需要图文教程或者视频演示吗?我可以继续为你准备。

未经允许不得转载:CLOUD技术博 » 宝塔如何配置1个域名2个不同的项目?