在云服务器上部署移动应用的后端服务是一个常见的需求。以下是详细的步骤和最佳实践,帮助你完成部署:
一、准备工作
-
选择云服务提供商
- 常见选择:阿里云、腾讯云、华为云、AWS、Google Cloud、Azure
- 根据目标用户地理位置选择就近区域,降低延迟
-
选择服务器类型
- 推荐使用 云服务器 ECS / CVM / EC2 等虚拟机
- 初期可选 2核4G 内存,带宽 1~5 Mbps
- 操作系统建议:Ubuntu LTS(如 20.04 或 22.04)
-
准备域名与备案(中国大陆)
- 若面向国内用户,需进行 ICP 备案
- 配置 DNS 解析指向云服务器公网 IP
二、环境搭建
1. 连接服务器
ssh root@your_server_ip
2. 更新系统 & 安装基础软件
sudo apt update && sudo apt upgrade -y
sudo apt install nginx git curl wget unzip -y
3. 安装运行环境(以 Node.js + Express 为例)
# 使用 nvm 安装 Node.js
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
source ~/.bashrc
nvm install 18
node -v
其他语言示例:
- Python: 安装 Python + Gunicorn + uWSGI
- Java: 安装 JDK + Tomcat / Spring Boot Jar
- Go: 编译成二进制直接运行
三、部署后端代码
1. 上传或克隆代码
git clone https://github.com/yourusername/your-backend.git
cd your-backend
npm install --production
2. 配置环境变量
创建 .env 文件:
NODE_ENV=production
PORT=3000
DB_HOST=your_db_host
DB_USER=user
DB_PASS=password
JWT_SECRET=your_secret_key
⚠️ 不要将敏感信息提交到 Git
四、启动服务(推荐使用进程管理器)
使用 PM2 管理 Node.js 应用
npm install -g pm2
pm2 start app.js --name "my-mobile-api"
pm2 startup
pm2 save
常用命令:
pm2 status
pm2 logs
pm2 restart my-mobile-api
五、配置反向X_X(Nginx)
编辑 Nginx 配置:
sudo nano /etc/nginx/sites-available/mobile-api
内容示例:
server {
listen 80;
server_name api.yourapp.com;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
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;
proxy_cache_bypass $http_upgrade;
}
}
启用配置:
sudo ln -s /etc/nginx/sites-available/mobile-api /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
六、配置 HTTPS(使用 Let’s Encrypt)
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d api.yourapp.com
自动配置 SSL 证书并启用 HTTPS。
七、数据库部署建议
-
自建数据库(适用于学习/小项目)
- 在同一服务器安装 MySQL/MongoDB
- 注意安全设置(改默认端口、强密码、防火墙)
-
使用云数据库(推荐生产环境)
- 如阿里云 RDS、腾讯云 MongoDB、AWS RDS
- 更高可用性、自动备份、安全隔离
八、安全加固
-
防火墙设置
sudo ufw allow 22 sudo ufw allow 80 sudo ufw allow 443 sudo ufw enable -
禁用 root 登录 & 使用密钥登录
# 创建普通用户 adduser deploy usermod -aG sudo deploy
配置 SSH 密钥登录,禁用密码登录
sudo nano /etc/ssh/sshd_config
修改:PasswordAuthentication no
sudo systemctl restart ssh
---
### 九、监控与日志
- 使用 `pm2 monit` 查看进程状态
- 配置日志轮转(logrotate)
- 可接入云监控服务(如阿里云云监控)
---
### 十、自动化部署(可选)
使用 CI/CD 工具实现自动部署:
- GitHub Actions
- Jenkins
- 阿里云效
流程示例:
代码 push → 自动构建 → SCP 上传 → 重启服务
---
### 总结:关键点
| 项目 | 建议 |
|------|------|
| 服务器 | Ubuntu + ECS/CVM |
| 后端运行 | PM2 / systemd |
| 反向X_X | Nginx |
| 安全 | HTTPS + 防火墙 + SSH 密钥 |
| 数据库 | 云数据库更稳妥 |
| 部署方式 | 手动 or CI/CD |
---
如果你提供具体的后端技术栈(如 Node.js、Spring Boot、Django 等),我可以给出更针对性的部署脚本和配置示例。
云小栈