在宝塔面板中,你可以通过以下方式配置一个域名绑定两个不同的项目。由于一个域名在HTTP/HTTPS协议下只能指向一个服务器路径,因此要实现“一个域名对应两个项目”,需要根据实际需求选择合适的方法。以下是几种常见且实用的解决方案:
✅ 方法一:使用子目录部署(推荐用于前后端分离项目)
例如:
- 主项目:
example.com→ 指向/www/wwwroot/project1 - 子项目:
example.com/subapp→ 指向/www/wwwroot/project2
步骤:
- 在宝塔中添加站点,域名为
example.com,根目录设为project1。 - 进入该站点的“配置文件”或“伪静态”设置。
- 在 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,可通过
.htaccess或Alias指令实现类似功能。
✅ 方法二:使用反向X_X(适合前后端分离或内部服务)
例如:
example.com→ 指向前端项目 Aexample.com/api→ X_X到另一个本地服务(如 Node.js、Python 后端、或另一个 PHP 项目)
步骤:
- 创建站点
example.com,根目录为前端项目。 - 在宝塔中进入“反向X_X”功能。
- 添加反向X_X:
- X_X名称:
api-proxy - 目标 URL:
http://127.0.0.1:3000(假设你的第二个项目运行在 3000 端口)
- X_X名称:
- 可选:修改配置文件,让
/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→ 项目1example.com:8081→ 项目2
但普通用户访问时不会加端口,所以通常需要配合反向X_X或子路径使用。
✅ 方法四:使用子域名(最清晰的方式)
虽然你问的是“一个域名”,但实际中更推荐使用子域名来区分项目:
www.example.com→ 项目1api.example.com或app.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博客