奋斗
努力

只有服务器没有域名怎么部署多个项目宝塔建站没有域名,如何用一个公网IP搭建多?

云计算

在没有域名的情况下,可以通过 端口区分反向X_X路径区分 的方式,利用单一公网IP部署多个项目。以下是具体方案:


方案1:通过不同端口区分项目(最简单)

  1. 修改宝塔站点配置

    • 为每个项目分配不同的端口(如 80018002)。
    • 在宝塔面板创建站点时,填写IP地址和端口(如 http://1.2.3.4:8001)。
    • 确保防火墙/安全组放行这些端口。
  2. 访问方式

    • 用户通过 http://公网IP:端口 访问不同项目(如 http://1.2.3.4:8001)。
  3. 优缺点

    • ✅ 简单直接,无需额外配置。
    • ❌ 需用户记住端口,不便于传播;部分环境可能屏蔽非常用端口。

方案2:通过反向X_X路径区分(更友好)

使用Nginx反向X_X,通过URL路径区分项目(如 /project1/project2):

  1. 在宝塔创建主站点

    • 绑定IP(如 http://1.2.3.4),不填域名。
  2. 配置Nginx反向X_X

    • 编辑站点配置文件,添加如下规则:
      location /project1 {
       proxy_pass http://127.0.0.1:8001;  # 转发到本地端口
       proxy_set_header Host $host;
      }
      location /project2 {
       proxy_pass http://127.0.0.1:8002;
       proxy_set_header Host $host;
      }
  3. 访问方式

    • 用户通过 http://1.2.3.4/project1http://1.2.3.4/project2 访问不同项目。
  4. 优缺点

    • ✅ URL更简洁,无需暴露端口。
    • ❌ 需项目支持子路径(部分前端项目需配置 baseURL)。

方案3:使用Host头区分(需客户端配合)

通过HTTP请求的 Host 头区分项目(需客户端手动设置):

  1. 配置Nginx

    server {
       listen 80;
       server_name _;  # 捕获所有请求
    
       if ($http_host = "project1") {
           proxy_pass http://127.0.0.1:8001;
       }
       if ($http_host = "project2") {
           proxy_pass http://127.0.0.1:8002;
       }
    }
  2. 访问方式
    • 用户需手动修改请求头(如使用Postman或浏览器插件设置 Host: project1)。
    • 适用于测试环境,不适合生产。

注意事项

  1. HTTPS支持
    • 若无域名,无法申请SSL证书,只能使用HTTP或自签证书(浏览器会警告)。
  2. 端口限制
    • 避免使用 80/443 之外的端口,部分企业网络可能屏蔽。
  3. 动态DNS
    • 若IP会变,可考虑免费DDNS服务(如 noip.com)绑定一个子域名。

推荐选择

  • 临时测试/个人使用 → 方案1(不同端口)
  • 长期使用且项目支持子路径 → 方案2(反向X_X路径)
  • 若后期有域名,可直接在宝塔绑定域名并配置HTTPS。
未经允许不得转载:云服务器 » 只有服务器没有域名怎么部署多个项目宝塔建站没有域名,如何用一个公网IP搭建多?