阿里云轻量应用服务器怎么部署多个项目?

在阿里云轻量应用服务器(LightHouse)上部署多个项目,虽然它资源相对有限(如单公网 IP、默认单入口),但通过合理配置,完全可以实现多个项目的共存和访问。以下是几种常见的部署方案和步骤:


✅ 方案一:使用 Nginx 反向X_X + 多端口(推荐)

这是最常见且高效的方式,通过 Nginx 根据域名或路径将请求转发到不同后端服务。

步骤:

  1. 将多个项目部署在不同端口上

    • 项目 A:运行在 localhost:3000
    • 项目 B:运行在 localhost:4000
    • 项目 C:运行在 localhost:5000

    比如使用 Node.js、Python Flask、Spring Boot 等,启动时绑定不同端口。

  2. 安装 Nginx

    # Ubuntu/Debian
    sudo apt update
    sudo apt install nginx -y
    
    # CentOS
    sudo yum install nginx -y
    sudo systemctl start nginx
    sudo systemctl enable nginx
  3. 配置 Nginx 虚拟主机(基于域名)

    创建配置文件(例如 /etc/nginx/sites-available/project-a):

    server {
       listen 80;
       server_name a.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;
       }
    }

    同样创建 project-b

    server {
       listen 80;
       server_name b.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/project-a /etc/nginx/sites-enabled/
    sudo ln -s /etc/nginx/sites-available/project-b /etc/nginx/sites-enabled/
  5. 测试并重启 Nginx

    sudo nginx -t
    sudo systemctl reload nginx
  6. 域名解析

    • a.yourdomain.comb.yourdomain.com 解析到轻量服务器的公网 IP。
    • 在阿里云控制台的「轻量应用服务器」中,确保 80 端口已放行(在防火墙中配置)。

✅ 方案二:基于路径的路由(单域名多项目)

如果你只有一个域名,可以按路径区分项目:

server {
    listen 80;
    server_name yourdomain.com;

    location /app1/ {
        proxy_pass http://127.0.0.1:3000/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }

    location /app2/ {
        proxy_pass http://127.0.0.1:4000/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

注意:后端项目需支持子路径(如静态资源路径处理)。


✅ 方案三:使用 Docker 部署(更灵活)

通过 Docker 容器隔离多个项目,再用 Nginx 反向X_X。

示例:

  1. 安装 Docker

    curl -fsSL https://get.docker.com | bash
  2. 编写 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
  3. 配置 Nginx 指向 app1app2 容器名(Docker 内部网络)。


✅ 方案四:使用 PM2 管理多个 Node.js 项目

如果你部署的是多个 Node.js 项目:

npm install -g pm2

# 启动多个项目
pm2 start app1.js --name "project-a" -- -p 3000
pm2 start app2.js --name "project-b" -- -p 4000

pm2 save
pm2 startup

然后用 Nginx 反向X_X到这些端口。


⚠️ 注意事项

  1. 资源限制:轻量服务器配置较低(如 2GB 内存),避免部署过多高负载项目。
  2. 防火墙:在阿里云控制台的「防火墙」中开放 80、443 等端口。
  3. HTTPS:使用 Let’s Encrypt + Certbot 配置 SSL:
    sudo apt install certbot python3-certbot-nginx
    sudo certbot --nginx -d a.yourdomain.com -d b.yourdomain.com
  4. 避免端口冲突:确保每个服务监听不同端口。

✅ 总结

方案 适用场景
Nginx 反向X_X(域名) 多个独立网站,推荐
Nginx 路径路由 单域名下多个子应用
Docker + Nginx 项目隔离、便于管理
PM2 + Nginx 多个 Node.js 应用

如果你提供具体项目类型(如 Vue、React、Spring Boot、Django 等),我可以给出更详细的部署命令和配置示例。欢迎继续提问!

未经允许不得转载:秒懂云 » 阿里云轻量应用服务器怎么部署多个项目?