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

在宝塔面板中,你可以通过 反向X_X子目录绑定 的方式,让一个域名同时运行两个不同的项目。以下是两种常见且实用的配置方法:


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

适用于:

  • 你有一个主项目运行在某个端口(如 Node.js、Python Flask/Django、Java Spring Boot 等)
  • 第二个项目运行在另一个端口
  • 希望通过同一个域名的不同路径访问两个项目

示例:

  • 主站:https://www.example.com → 指向 PHP 项目或静态页面
  • 子项目:https://www.example.com/app2 → 反向X_X到本地 http://127.0.0.1:3000

配置步骤:

  1. 部署两个项目

    • 项目1:在宝塔创建网站 www.example.com,根目录放项目1代码。
    • 项目2:启动在本地某个端口,比如用 Node.js 启动在 http://127.0.0.1:3000
  2. 进入宝塔网站设置

    • 打开宝塔 → 网站 → 找到你的域名站点 → 点击「设置」
  3. 添加反向X_X

    • 切换到「反向X_X」选项卡
    • 添加反向X_X:
      • X_X名称:app2
      • 目标URL:http://127.0.0.1:3000
      • 发送域名:$host
      • 开启缓存(可选)
    • 保存
  4. 修改 Nginx 配置(关键)

    • 进入「配置文件」选项卡
    • 找到刚添加的反向X_X location 块,通常是:
      location /app2 {
       proxy_pass http://127.0.0.1:3000;
       ...
      }
    • 如果没有 /app2 路径,手动修改成:
      location /app2/ {
       proxy_pass http://127.0.0.1:3000/;
       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_set_header X-Forwarded-Proto $scheme;
      }
    • 注意结尾斜杠 /,避免路径错乱
  5. 重启 Nginx

    • 保存配置,重启 Nginx
  6. 访问测试:

    • https://www.example.com → 项目1
    • https://www.example.com/app2 → 项目2(通过反向X_X)

✅ 方法二:使用子目录绑定(适用于同服务器不同项目目录)

适用于:

  • 两个项目都是 PHP 或静态文件
  • 都放在同一服务器上,但不同目录

示例:

  • https://www.example.com/www/wwwroot/site1
  • https://www.example.com/app2 → 指向 /www/wwwroot/site2

配置步骤:

  1. 在宝塔中创建主站点 www.example.com,根目录为 site1

  2. 进入该站点的「配置文件」

    • 添加如下 location 块:

      location /app2/ {
       alias /www/wwwroot/site2/;
       index index.html index.php;
       if (-f $request_filename) {
           break;
       }
       if (!-e $request_filename) {
           rewrite ^/app2/(.*)$ /app2/index.php/$1 last;
           break;
       }
      }
      
      location ~ /app2/.+.php($|/) {
       alias /www/wwwroot/site2/$1;
       fastcgi_pass unix:/tmp/php-cgi.sock; # 根据你的PHP版本调整
       include fastcgi_params;
       fastcgi_param SCRIPT_FILENAME /www/wwwroot/site2$fastcgi_script_name;
       fastcgi_index index.php;
      }

      ⚠️ 注意:aliasfastcgi_param SCRIPT_FILENAME 路径要写对,否则 PHP 不执行。

  3. 保存并重启 Nginx

  4. 访问:

    • https://www.example.com → 主项目
    • https://www.example.com/app2 → 第二个项目

✅ 方法三:使用二级域名(更简单清晰)

如果你可以接受使用子域名,这是最清晰的方式:

  • www.example.com → 项目1
  • app2.example.com → 项目2(新建一个站点)

在宝塔中:

  1. 创建两个网站
  2. 分别绑定 www.example.comapp2.example.com
  3. 各自指向不同项目目录或反向X_X

总结对比

方法 适用场景 优点 缺点
反向X_X 项目运行在不同端口(Node.js、Python等) 灵活,支持非HTTP服务 需要额外配置Nginx
子目录绑定 两个静态/PHP项目在同一服务器 不占用端口 配置复杂,易出错
二级域名 两个独立项目 简单清晰,易于维护 需要用户接受子域名

✅ 推荐方案:

如果是前后端分离或有后端服务,使用反向X_X是最常见、最灵活的做法。

如有具体技术栈(如 Vue + Node.js),可提供更详细的配置示例。欢迎补充你的项目类型!