腾讯云服务器怎么部署两个项目?

云计算

在腾讯云服务器上部署两个项目是完全可行的,常见的方法包括使用不同的端口、反向X_X(如 Nginx)、Docker 容器化等。以下是几种常见且推荐的方式:


✅ 方法一:通过不同端口部署(简单直接)

适用场景:

两个项目都是 Web 应用(如 Node.js、Python Flask/Django、Java Spring Boot 等),但运行在不同端口。

步骤:

  1. 上传并启动第一个项目

    • 例如:Node.js 项目监听 3000 端口
      node app1.js  # 监听 3000
  2. 上传并启动第二个项目

    • 例如:另一个 Node.js 或 Python 项目监听 4000 端口
      python app2.py  # 监听 4000
  3. 开放安全组端口

    • 登录腾讯云控制台 → 进入「云服务器 CVM」→ 找到你的实例 → 安全组 → 添加规则:
      • 开放端口 30004000(TCP)
      • 源 IP 可设为 0.0.0.0/0(生产环境建议限制 IP)
  4. 访问方式

    • 项目1:http://<公网IP>:3000
    • 项目2:http://<公网IP>:4000

⚠️ 缺点:URL 带端口号不美观,不适合正式上线。


✅ 方法二:使用 Nginx 反向X_X(推荐用于生产)

优点:

  • 可以通过域名 + 路径区分项目
  • 支持 HTTPS、负载均衡、缓存等
  • 用户访问统一端口(80/443)

步骤:

  1. 安装 Nginx

    sudo apt update
    sudo apt install nginx -y
    sudo systemctl start nginx
    sudo systemctl enable nginx
  2. 配置两个项目分别运行在不同端口

    • 项目1:localhost:3000
    • 项目2:localhost:4000
  3. 配置 Nginx 反向X_X

    创建两个配置文件或合并到一个中:

    # /etc/nginx/sites-available/project1
    server {
        listen 80;
        server_name project1.yourdomain.com;
    
        location / {
            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;
        }
    }
    
    server {
        listen 80;
        server_name project2.yourdomain.com;
    
        location / {
            proxy_pass http://127.0.0.1:4000;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }
  4. 启用配置

    sudo ln -s /etc/nginx/sites-available/project1 /etc/nginx/sites-enabled/
    sudo nginx -t          # 测试配置
    sudo systemctl reload nginx
  5. 域名解析

    • 在域名服务商处将 project1.yourdomain.comproject2.yourdomain.com 解析到服务器公网 IP
  6. 开放安全组

    • 确保腾讯云安全组允许 80(HTTP)和 443(HTTPS)端口

✅ 推荐:后续可使用 Let’s Encrypt 免费证书开启 HTTPS。


✅ 方法三:使用 Docker 部署(高级推荐)

优点:

  • 环境隔离
  • 易于管理多个项目
  • 可配合 Docker Compose 统一编排

示例:docker-compose.yml

version: '3'
services:
  app1:
    image: your-app1-image
    ports:
      - "3000:3000"
    restart: unless-stopped

  app2:
    image: your-app2-image
    ports:
      - "4000:4000"
    restart: unless-stopped

  nginx:
    image: nginx:alpine
    ports:
      - "80:80"
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf
    depends_on:
      - app1
      - app2
    restart: unless-stopped

然后配置 Nginx 将流量转发到 app1app2 容器。


✅ 方法四:子路径X_X(单域名下多项目)

如果你想用同一个域名访问两个项目,比如:

  • yourdomain.com/app1 → 项目1
  • yourdomain.com/app2 → 项目2

Nginx 配置如下:

location /app1/ {
    proxy_pass http://127.0.0.1:3000/;
    proxy_set_header Host $host;
}

location /app2/ {
    proxy_pass http://127.0.0.1:4000/;
    proxy_set_header Host $host;
}

注意:项目本身可能需要配置 base path,否则静态资源路径会出错。


🛠️ 补充建议

  1. 使用 PM2(Node.js)或 Gunicorn(Python)守护进程

    npm install -g pm2
    pm2 start app1.js --name "project1"
    pm2 start app2.js --name "project2"
    pm2 startup
  2. 防火墙设置

    • Ubuntu 使用 ufw,确保放行 80、443、必要端口
    • 同时在腾讯云「安全组」中开放对应端口
  3. 日志监控

    • 查看 Nginx 日志:/var/log/nginx/access.logerror.log
    • 项目日志单独输出便于排查

总结

方法 适合场景 是否推荐
不同端口直接访问 测试、开发 ✅ 简单
Nginx 反向X_X(多域名) 正式上线、多项目 ✅✅✅ 强烈推荐
Nginx 子路径X_X 单域名多个应用 ✅(注意路径兼容性)
Docker + Nginx 复杂项目、微服务 ✅✅ 最佳实践

如果你告诉我你的项目类型(如 Vue + Spring Boot、两个 Node.js 项目等),我可以提供更具体的部署脚本和配置示例。