云服务器部署多项目?

在云服务器上部署多个项目是常见需求,适用于企业、开发者等场景。下面我将从部署方式、目录结构、端口管理、反向X_X配置、安全性等方面详细说明如何在一台云服务器(如阿里云、腾讯云、AWS 等)上部署多个项目。


一、常见的部署方式

1. 多个项目的类型

  • Web 应用:Node.js、Java Spring Boot、Django、Flask、PHP 等
  • 静态网站:HTML/CSS/JS 项目(React/Vue/Angular)
  • 微服务架构:多个独立服务(每个监听不同端口)

二、部署方案推荐

方案一:使用 Nginx/Apache 做反向X_X(推荐)

优点:

  • 可以通过域名区分项目
  • 安全性高
  • 易于扩展和维护

步骤:

1. 安装 Nginx
sudo apt update
sudo apt install nginx
2. 每个项目运行在不同端口

比如:

  • 项目A: localhost:3000
  • 项目B: localhost:8000
  • 项目C: localhost:5000
3. 配置 Nginx 虚拟主机

假设你有两个域名或子域名:

  • projecta.example.com → 项目 A
  • projectb.example.com → 项目 B

创建两个配置文件:

sudo nano /etc/nginx/sites-available/projecta.conf

内容如下:

server {
    listen 80;
    server_name projecta.example.com;

    location / {
        proxy_pass http://localhost:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

同样地配置 projectb.conf

server {
    listen 80;
    server_name projectb.example.com;

    location / {
        proxy_pass http://localhost:8000;
        ...
    }
}
4. 启用站点并重启 Nginx
sudo ln -s /etc/nginx/sites-available/projecta.conf /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/projectb.conf /etc/nginx/sites-enabled/

sudo nginx -t  # 检查语法
sudo systemctl restart nginx

方案二:使用 Docker + Docker Compose

如果你有多个项目,使用 Docker 是一种更现代、灵活的方式。

优点:

  • 隔离性强
  • 部署快速
  • 易于版本控制

示例 docker-compose.yml 文件:

version: '3'
services:
  webapp1:
    image: your-webapp1
    ports:
      - "3000:3000"

  webapp2:
    image: your-webapp2
    ports:
      - "8000:8000"

  nginx:
    image: nginx
    ports:
      - "80:80"
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf
    depends_on:
      - webapp1
      - webapp2

然后在 Nginx 中做反代即可。


三、其他注意事项

1. 端口开放

确保你在云平台的安全组中放行了以下端口:

  • HTTP: 80
  • HTTPS: 443
  • SSH: 22(默认)
  • 其他自定义端口(如 3000、8000)

2. 使用 Let’s Encrypt 配置 HTTPS

可以为每个域名配置 SSL:

sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx

3. 日志与监控

  • 每个项目单独记录日志
  • 使用 PM2、systemd 或 Docker logs 查看运行状态
  • 可接入 Prometheus + Grafana 监控系统资源

四、目录结构建议(非容器化部署)

/var/www/
├── project-a/
│   ├── app.js
│   └── package.json
├── project-b/
│   ├── main.py
│   └── requirements.txt
└── logs/

五、总结

方法 适用场景 推荐程度
Nginx 反代 多 Web 项目共存 ⭐⭐⭐⭐⭐
Docker Compose 微服务、多环境隔离 ⭐⭐⭐⭐☆
多用户+多目录 多人协作开发 ⭐⭐⭐

如果你告诉我你的具体技术栈(比如是 Node.js、Python 还是 Java),我可以给出更具体的部署脚本和命令。需要的话请补充信息 😊

未经允许不得转载:CLOUD技术博 » 云服务器部署多项目?