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

服务器

在宝塔面板中,你可以通过以下方式配置一个域名绑定两个不同的项目。由于一个域名在HTTP/HTTPS协议下只能指向一个服务器路径,因此要实现“一个域名对应两个项目”,需要根据实际需求选择合适的方法。以下是几种常见且实用的解决方案:


✅ 方法一:使用子目录部署(推荐用于前后端分离项目)

例如:

  • 主项目:example.com → 指向 /www/wwwroot/project1
  • 子项目:example.com/subapp → 指向 /www/wwwroot/project2

步骤:

  1. 在宝塔中添加站点,域名为 example.com,根目录设为 project1
  2. 进入该站点的“配置文件”或“伪静态”设置。
  3. 在 Nginx/Apache 配置中添加一个 location 规则,将某个子路径X_X或指向另一个项目目录。

Nginx 示例配置(在站点配置文件中添加):

location /subapp/ {
    alias /www/wwwroot/project2/;
    index index.html index.php;

    # 如果是 PHP 项目,需要添加 PHP 支持
    if (-f $request_filename) {
        expires 12h;
    }
    if (!-e $request_filename) {
        rewrite ^/subapp/(.*)$ /subapp/index.php/$1 last;
    }
}

location ~ ^/subapp/.*.php$ {
    alias /www/wwwroot/project2/$1;
    fastcgi_pass unix:/tmp/php-cgi.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME /www/wwwroot/project2$fastcgi_script_name;
    include fastcgi_params;
}

⚠️ 注意:

  • alias 结尾的 / 很重要。
  • 确保 project2 中的 PHP 路径正确,SCRIPT_FILENAME 要匹配实际路径。
  • 如果使用 Apache,可通过 .htaccessAlias 指令实现类似功能。

✅ 方法二:使用反向X_X(适合前后端分离或内部服务)

例如:

  • example.com → 指向前端项目 A
  • example.com/api → X_X到另一个本地服务(如 Node.js、Python 后端、或另一个 PHP 项目)

步骤:

  1. 创建站点 example.com,根目录为前端项目。
  2. 在宝塔中进入“反向X_X”功能。
  3. 添加反向X_X:
    • X_X名称:api-proxy
    • 目标 URL:http://127.0.0.1:3000(假设你的第二个项目运行在 3000 端口)
  4. 可选:修改配置文件,让 /api/ 路径走X_X。

Nginx 配置示例:

location /api/ {
    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;
}

✅ 方法三:使用多端口 + 域名路径跳转(不推荐公网使用)

你可以让两个项目运行在不同端口,如:

  • example.com:8080 → 项目1
  • example.com:8081 → 项目2

但普通用户访问时不会加端口,所以通常需要配合反向X_X或子路径使用。


✅ 方法四:使用子域名(最清晰的方式)

虽然你问的是“一个域名”,但实际中更推荐使用子域名来区分项目:

  • www.example.com → 项目1
  • api.example.comapp.example.com → 项目2

在宝塔中分别创建两个站点,绑定不同子域名和不同目录,清晰且易于管理。


总结:如何选择?

需求场景 推荐方法
前后端分离(前端在根路径,后端 API 在 /api 反向X_X /api 到后端服务
两个静态/PHP 项目共存 使用 location + alias 配置子路径
多个独立应用 使用子域名(如 a.example.com, b.example.com
内部系统集成 反向X_X或路径X_X

温馨提示:

  • 修改 Nginx 配置后,记得点击“保存”并“重启 Nginx”。
  • 使用宝塔的“配置文件”功能时,注意备份。
  • 测试路径时,清空浏览器缓存或使用无痕模式。

如果你提供具体项目类型(如:Vue + Laravel、两个 PHP 系统等),我可以给出更精确的配置示例。

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