在阿里云轻量应用服务器上部署多个项目,可以通过以下步骤实现,具体方法取决于项目类型(如Web应用、API服务等)和技术栈(如Nginx、Docker等)。以下是几种常见方案的详细指南:
方案1:使用Nginx反向X_X(适合Web项目)
适用场景:多个域名或子域名对应不同项目(如PHP、Python、Node.js等静态或动态网站)。
步骤:
-
安装Nginx
sudo apt update && sudo apt install nginx -y -
部署项目
将不同项目放到不同目录,例如:- 项目1:
/var/www/project1 - 项目2:
/var/www/project2
- 项目1:
-
配置Nginx虚拟主机
为每个项目创建独立的配置文件(/etc/nginx/conf.d/目录下):-
项目1配置(
project1.conf):server { listen 80; server_name project1.com; # 替换为域名或服务器IP root /var/www/project1; index index.html index.php; # 其他配置(如PHP支持) location ~ .php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php8.1-fpm.sock; # 根据PHP版本调整 } } - 项目2配置(
project2.conf):server { listen 80; server_name project2.com; # 或子域名如 sub.domain.com root /var/www/project2; index index.html; }
-
-
重启Nginx
sudo nginx -t # 测试配置 sudo systemctl restart nginx -
绑定域名
在域名解析服务商处将域名或子域名指向服务器IP。
方案2:使用不同端口(适合测试或小型项目)
适用场景:临时测试或无需域名的场景。
步骤:
- 为每个项目分配独立端口(如3000、4000)。
- 启动项目时指定端口:
- Node.js示例:
# 项目1 cd /path/to/project1 && npm start --port 3000 # 项目2 cd /path/to/project2 && npm start --port 4000
- Node.js示例:
- 通过防火墙放行端口:
sudo ufw allow 3000 sudo ufw allow 4000 - 访问方式:
http://服务器IP:3000和http://服务器IP:4000
方案3:使用Docker容器(推荐隔离环境)
适用场景:需要环境隔离或复杂依赖的项目(如Java/Python/Node.js混合部署)。
步骤:
-
安装Docker
curl -fsSL https://get.docker.com | sudo sh -
为每个项目创建Docker容器
- 示例:Node.js项目
# 项目1 docker run -d -p 3000:3000 --name project1 -v /path/to/project1:/app node:16 npm start # 项目2 docker run -d -p 4000:4000 --name project2 -v /path/to/project2:/app python:3.9 python app.py
- 示例:Node.js项目
-
使用Nginx反向X_X容器
在Nginx配置中X_X到容器的端口:server { server_name project1.com; location / { proxy_pass http://localhost:3000; } }
方案4:使用PM2管理Node.js进程(适合后台服务)
适用场景:多个Node.js项目常驻运行。
-
安装PM2
npm install pm2 -g -
启动项目
cd /path/to/project1 && pm2 start app.js --name "project1" cd /path/to/project2 && pm2 start app.js --name "project2" -
设置开机自启
pm2 save && pm2 startup
通用注意事项
- 防火墙设置
确保阿里云控制台安全组放行所需端口(80、443、自定义端口等)。 - 资源监控
使用htop或docker stats监控资源占用,避免服务器过载。 - 域名HTTPS
使用Certbot免费证书:sudo apt install certbot python3-certbot-nginx sudo certbot --nginx -d project1.com -d project2.com
选择建议
- 简单Web项目:Nginx反向X_X(方案1)。
- 需要环境隔离:Docker(方案3)。
- 临时测试:多端口(方案2)。
根据项目需求和技术栈灵活组合方案。
云服务器