在阿里云轻量应用服务器(Simple Application Server, SAS)上部署项目,通常遵循“系统初始化 → 环境安装 → 代码部署 → 服务配置 → 安全与访问”的标准流程。以下是通用且详细的操作步骤:
一、前置准备
-
购买并登录控制台
- 在阿里云官网创建轻量应用服务器实例(推荐选择 Ubuntu 20.04/22.04 或 CentOS 7/8)。
- 设置好 root 密码或 SSH 密钥对。
- 确认已绑定公网 IP(轻量默认自带),并在【防火墙】中放行所需端口(如 80、443、自定义端口等)。
-
本地连接服务器
ssh root@<你的公网IP> # 或使用密钥登录 ssh -i ~/.ssh/id_rsa root@<你的公网IP>
二、基础环境搭建(以 Java/Node.js/Python 为例)
✅ 方案 A:部署 Web 项目(如 Spring Boot + Nginx)
# 1. 更新系统
sudo apt update && sudo apt upgrade -y # Ubuntu
# 或
sudo yum update -y # CentOS
# 2. 安装 JDK(示例:OpenJDK 17)
sudo apt install openjdk-17-jdk -y # Ubuntu
# 或
sudo yum install java-17-openjdk-devel -y # CentOS
# 3. 安装 Nginx
sudo apt install nginx -y # Ubuntu
# 或
sudo yum install nginx -y # CentOS
# 4. 启动 Nginx 并设置开机自启
sudo systemctl start nginx
sudo systemctl enable nginx
✅ 方案 B:部署 Node.js 项目
# 安装 Node.js(推荐使用 nvm 管理版本)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
source ~/.bashrc
nvm install --lts
node -v && npm -v
# 安装 PM2(进程管理器)
sudo npm install pm2 -g
✅ 方案 C:部署 Python/Django 项目
sudo apt install python3-pip python3-venv -y
python3 -m venv venv
source venv/bin/activate
pip install django gunicorn
💡 提示:若需数据库(MySQL/PostgreSQL),可一键安装:
# MySQL sudo apt install mysql-server -y sudo mysql_secure_installation # PostgreSQL sudo apt install postgresql postgresql-contrib -y
三、上传项目代码
方式 1:Git 拉取(推荐)
cd /var/www/myproject
git clone <你的仓库地址> .
# 注意:确保 `.gitignore` 不包含敏感信息;如需私仓,提前配置 SSH 密钥
方式 2:SCP/SFTP 上传
# 本地终端执行
scp -r ./dist/* root@<公网IP>:/var/www/myproject/
# 或使用 SFTP 工具(如 WinSCP、FileZilla)连接上传
四、配置运行环境与启动服务
🌐 示例:Spring Boot + Nginx 反向X_X
-
编译打包项目(本地或远程):
mvn clean package -DskipTests -
将
target/*.jar放到/var/www/myproject/app.jar -
创建 systemd 服务文件:
sudo nano /etc/systemd/system/myapp.service内容:
[Unit] Description=My Spring Boot App After=network.target [Service] User=root WorkingDirectory=/var/www/myproject ExecStart=/usr/bin/java -jar app.jar Restart=always Environment="JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64" [Install] WantedBy=multi-user.target启用服务:
sudo systemctl daemon-reload sudo systemctl start myapp sudo systemctl enable myapp -
配置 Nginx 反向X_X:
sudo nano /etc/nginx/sites-available/default添加:
server { listen 80; server_name your-domain.com; # 替换为你的域名 location / { proxy_pass http://localhost:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }测试并重载:
sudo nginx -t sudo systemctl reload nginx
🚀 其他框架启动方式
| 技术栈 | 启动命令示例 |
|---|---|
| Node.js (PM2) | pm2 start app.js --name myapp |
| Django | gunicorn --bind :8000 myproject.wsgi:application |
| Go | ./main & 或配合 systemd |
五、安全加固建议(重要!)
- 🔒 修改默认 SSH 端口(如改为 2222),并在防火墙放行新端口。
- 🔐 禁用 root 远程登录,改用普通用户 +
sudo。 - 🛡️ 安装
fail2ban防止暴力破解:sudo apt install fail2ban -y sudo systemctl enable fail2ban - 📜 配置安全组规则:仅在阿里云控制台开放必要端口(如 80/443/SSH 自定义端口)。
- 🔄 定期备份数据(可用
rsync或阿里云快照功能)。
六、验证与监控
- 访问
http://<公网IP>或绑定域名后测试。 - 查看日志:
journalctl -u myapp -f # systemd 服务日志 tail -f /var/log/nginx/error.log pm2 logs # Node.js 日志 - 使用阿里云监控(云监控 → 主机监控)观察 CPU、内存、磁盘使用情况。
需要我针对具体技术栈(如 Vue+Express、React+Nginx、Docker 容器化部署等)提供定制化部署脚本吗?欢迎告诉我你的项目类型 😊
CLOUD云计算