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

云计算

在阿里云轻量应用服务器上部署多个项目,可以通过以下方法实现,具体选择取决于项目类型(如Web应用、API服务等)和技术栈(Nginx、Docker等):


一、基于端口或域名区分(推荐)

1. 使用不同域名(最常用)

  • 步骤

    1. 域名解析:将多个域名解析到服务器公网IP(如 project1.comproject2.com)。
    2. 配置Nginx/Apache

      # /etc/nginx/conf.d/project1.conf
      server {
          listen 80;
          server_name project1.com;
          root /var/www/project1;
          index index.html;
          # 其他配置(如PHP、反向X_X等)
      }
      
      # /etc/nginx/conf.d/project2.conf
      server {
          listen 80;
          server_name project2.com;
          root /var/www/project2;
          index index.php;
          # PHP项目示例
          location ~ .php$ {
              include fastcgi_params;
              fastcgi_pass unix:/run/php/php8.0-fpm.sock;
          }
      }
    3. 重启Nginx:sudo systemctl restart nginx

2. 使用不同端口

  • 修改项目配置文件,监听不同端口(如3000、4000),并通过Nginx反向X_X或直接访问:
     server {
         listen 80;
         server_name project1.com;
         location / {
             proxy_pass http://localhost:3000; # 转发到Node.js应用
         }
     }

二、使用Docker容器化部署

适合隔离环境依赖的项目。

  1. 安装Docker
    curl -fsSL https://get.docker.com | sh
  2. 为每个项目创建容器

    # 项目1(例如WordPress)
    docker run -d --name project1 -p 8080:80 -v /path/to/project1:/var/www/html wordpress
    
    # 项目2(例如Node.js)
    docker run -d --name project2 -p 3000:3000 -v /path/to/project2:/app node:14 node /app/index.js
  3. 通过Nginx反向X_X(可选):
    将域名指向不同容器的端口。

三、使用进程管理工具(PM2、Supervisor)

适用于后台运行多个Node.js/Python脚本。

  1. 安装PM2
    npm install pm2 -g
  2. 启动项目
    pm2 start /path/to/project1/app.js --name "project1"
    pm2 start /path/to/project2/main.py --interpreter python3 --name "project2"
  3. 查看状态
    pm2 list

四、虚拟主机(Apache)

适用于传统PHP项目。

  1. 编辑Apache配置(/etc/apache2/sites-available/):

    <VirtualHost *:80>
       ServerName project1.com
       DocumentRoot /var/www/project1
    </VirtualHost>
    
    <VirtualHost *:80>
       ServerName project2.com
       DocumentRoot /var/www/project2
    </VirtualHost>
  2. 启用配置并重启:
    sudo a2ensite project1.conf
    sudo systemctl restart apache2

五、数据库隔离

  • 为不同项目创建独立数据库用户和库:
    CREATE DATABASE project1_db;
    CREATE USER 'user1'@'localhost' IDENTIFIED BY 'password1';
    GRANT ALL PRIVILEGES ON project1_db.* TO 'user1'@'localhost';

注意事项

  1. 防火墙:确保阿里云安全组放行所需端口(80、443、自定义端口等)。
  2. 资源监控:轻量服务器资源有限,避免同时运行过多高负载项目。
  3. HTTPS:使用Let’s Encrypt为域名免费配置SSL证书:
    sudo certbot --nginx -d project1.com -d project2.com

根据项目复杂度选择合适方案。简单静态站点用Nginx多域名,复杂服务建议用Docker隔离。

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