在阿里云服务器上部署后端项目是一个常见的操作,适用于Java、Python、Node.js、Go等各类后端语言开发的项目。以下是通用的部署流程和注意事项,以 CentOS 7 系统为例,使用 宝塔面板 或 纯命令行方式 都可以。
✅ 一、准备工作
1. 购买阿里云ECS服务器
- 操作系统推荐:CentOS 7.x / Ubuntu 20.04 LTS
- 安全组配置:开放你需要的端口(如80、443、8080、3000、22等)
2. 获取服务器登录信息
- 公网IP地址
- SSH账号密码或密钥(root或普通用户)
- 使用工具如:XShell、SecureCRT、Termius、MobaXterm 或直接使用
ssh root@公网IP
✅ 二、部署步骤(以Java Spring Boot项目为例)
步骤1:安装JDK(如果是Java项目)
# 查看已安装的Java版本
java -version
# 安装OpenJDK 8(也可以选择11)
yum install java-1.8.0-openjdk-devel -y
# 设置环境变量(可选)
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export PATH=$JAVA_HOME/bin:$PATH
步骤2:上传项目Jar包
方法一:使用scp命令本地传到服务器
scp your-project.jar root@你的服务器IP:/root/
方法二:用FTP工具(如FileZilla)上传
或使用宝塔文件管理器上传
步骤3:运行Spring Boot项目
# 后台启动并输出日志到 nohup.out 文件
nohup java -jar your-project.jar > output.log 2>&1 &
? 可使用
screen或systemd做更稳定的进程守护
步骤4:配置安全组放行端口
在阿里云控制台 -> 安全组中,添加入方向规则:
- 协议类型:TCP
- 端口范围:8080(或你项目的实际端口)
- 授权对象:0.0.0.0/0
步骤5:访问测试
浏览器访问:
http://你的服务器公网IP:8080
✅ 三、其他常见后端项目的部署方式
| 技术栈 | 部署简要说明 |
|---|---|
| Node.js | 安装Node.js + npm,使用PM2进行进程管理 |
| Python (Flask/Django) | 安装Python + Gunicorn + Nginx反向X_X |
| Go | 编译成Linux可执行文件上传运行即可 |
| PHP | 宝塔一键部署LNMP环境,上传代码即可 |
✅ 四、使用Nginx做反向X_X(可选)
如果你希望用域名访问,不带端口号,可以用Nginx做反代:
示例配置 /etc/nginx/conf.d/myapp.conf
server {
listen 80;
server_name yourdomain.com;
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
重启Nginx:
systemctl restart nginx
✅ 五、域名绑定与HTTPS(可选)
- 在阿里云购买域名
- 域名解析到服务器公网IP
- 使用 Let’s Encrypt 免费证书配置HTTPS
- 推荐使用 Certbot
- 或通过宝塔自动申请SSL证书
✅ 六、推荐工具
| 工具 | 用途 |
|---|---|
| 宝塔面板 | 图形化部署环境(LNMP、数据库、网站) |
| XShell / FinalShell | SSH连接服务器 |
| FileZilla | FTP上传文件 |
| PM2 | Node.js项目进程管理 |
| Supervisor | Python/其他服务进程管理 |
✅ 七、常见问题排查
| 问题 | 解决方案 |
|---|---|
| 无法访问项目 | 检查安全组是否开放对应端口 |
| 项目崩溃 | 查看日志文件(nohup.out / logs目录) |
| 无法连接SSH | 检查防火墙、安全组22端口是否开放 |
| 数据库连接失败 | 检查数据库配置、是否允许远程连接 |
| DNS解析失败 | 检查域名解析记录是否正确 |
? 总结
部署一个后端项目到阿里云服务器的基本流程是:
- 准备服务器和环境(JDK/Nginx/Node.js等)
- 上传项目文件(Jar/源码/编译后的文件)
- 运行项目并后台守护
- 配置安全组放行端口
- 绑定域名、配置Nginx和HTTPS(可选)
如果你告诉我你使用的具体技术栈(比如Java/Spring Boot、Node.js、Python Flask),我可以给你更详细的部署脚本和教程!需要的话请补充说明 ?
CDNK博客