走啊走
加油

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

服务器价格表

在阿里云轻量应用服务器(Lightweight Application Server)上部署多个 Web 项目是完全可行的,虽然它不像 ECS 那样灵活支持自定义 VPC 和复杂网络配置,但通过合理配置 Nginx、端口映射或反向X_X等方式,可以轻松实现多站点共存。

以下是几种常见的部署方案:


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

原理:

  • 每个 Web 项目运行在不同的本地端口(如 3000、3001、8080 等)
  • 使用 Nginx 作为反向X_X,根据域名将请求转发到对应的服务
  • 支持多个域名绑定,实现“一个 IP 托管多个网站”

步骤:

  1. 购买并配置多个域名(可选通配符)

    • 如:site1.comsite2.com
    • 将域名 A 记录解析到轻量服务器公网 IP
  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. 启动多个 Web 服务(Node.js 示例)

    • 项目1:监听 3000
      cd /var/www/site1
      node app.js  # 监听 3000 端口
    • 项目2:监听 3001
      cd /var/www/site2
      node app.js  # 监听 3001 端口

    推荐使用 PM2 守护进程管理 Node 服务:

    npm install -g pm2
    pm2 start app.js --name "site1" -- --port 3000
    pm2 startup && pm2 save
  4. 配置 Nginx 虚拟主机

    创建两个配置文件:

    /etc/nginx/sites-available/site1.com

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

    /etc/nginx/sites-available/site2.com

    server {
       listen 80;
       server_name site2.com www.site2.com;
    
       location / {
           proxy_pass http://127.0.0.1:3001;
           proxy_set_header Host $host;
           proxy_set_header X-Real-IP $remote_addr;
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       }
    }
  5. 启用站点

    sudo ln -s /etc/nginx/sites-available/site1.com /etc/nginx/sites-enabled/
    sudo ln -s /etc/nginx/sites-available/site2.com /etc/nginx/sites-enabled/
    
    # 删除默认站点(如有)
    sudo rm /etc/nginx/sites-enabled/default
    
    # 测试配置并重启
    sudo nginx -t
    sudo systemctl restart nginx
  6. 开放防火墙端口

    • 轻量服务器后台安全组:放行 80(HTTP)、443(HTTPS)
    • 系统防火墙(如有):确保允许 80/443
  7. (可选)配置 HTTPS(Let's Encrypt)
    使用 Certbot 自动申请免费 SSL 证书:

    sudo apt install certbot python3-certbot-nginx -y
    sudo certbot --nginx -d site1.com -d www.site1.com

✅ 方案二:基于不同端口直接访问(简单但不美观)

  • 项目1:http://your-ip:3000
  • 项目2:http://your-ip:3001
  • 不需要 Nginx,适合测试或内部使用

缺点:URL 包含端口号,不专业;不利于 SEO


✅ 方案三:使用 Docker 部署多个容器(高级)

  1. 安装 Docker
  2. 为每个项目编写 Dockerfile 或使用镜像
  3. 使用 docker-compose.yml 统一管理多个服务 + Nginx 反向X_X

示例 docker-compose.yml 片段:

version: '3'
services:
  site1:
    image: my-site1
    ports:
      - "3000:3000"
  site2:
    image: my-site2
    ports:
      - "3001:3001"
  nginx:
    image: nginx
    ports:
      - "80:80"
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf

⚠️ 注意事项

  1. 资源限制
    轻量服务器配置较低(如 2核2G),建议项目不多于 3~5 个,避免内存不足。

  2. 安全组设置
    在阿里云控制台 → 轻量服务器 → 防火墙,放行 80443 端口。

  3. 域名备案(国内服务器)
    如果服务器位于我国大陆,必须对域名进行 ICP 备案才能访问。

  4. 自动启动脚本
    使用 systemdpm2 startup 确保服务重启后自动运行。


✅ 总结

方案 是否推荐 适用场景
Nginx 反向X_X + 域名 ✅ 强烈推荐 多个正式网站上线
直接用端口访问 ⚠️ 仅测试 内部测试、临时演示
Docker 部署 ✅ 推荐 项目较多、便于维护

如果你提供具体的技术栈(如:Vue + Node、Java Spring Boot、Python Flask 等),我可以给出更详细的部署命令和配置模板。

需要我帮你写一份完整的 Nginx + PM2 部署脚本吗?