一个简单的Web应用部署流程
小李是公司新来的开发,接到任务要把刚写好的博客系统部署到服务器上。他没太多经验,但按照团队给的部署流程一步步来,顺利完成了上线。这个过程其实并不复杂,关键是有清晰的步骤。
1. 准备阶段:代码与环境对齐
在动手之前,先把本地代码推送到Git仓库,比如GitHub或GitLab。确保分支明确,通常用 main 或 release 分支作为稳定版本。
服务器环境也要准备好。常见的组合是 Nginx + Node.js + MySQL。安装好之后,确认版本兼容。比如Node.js用16.x以上,MySQL用5.7或8.0。
2. 拉取代码并安装依赖
登录服务器,进入网站目录,拉取最新代码:
git clone https://github.com/username/blog-app.git
cd blog-app
npm install
如果项目用了构建工具,比如Vue或React,还得执行打包:
npm run build
3. 配置服务运行文件
用 PM2 管理Node.js进程很常见。先全局安装PM2:
npm install -g pm2
然后启动应用:
pm2 start app.js --name "blog-service"
这样服务就在后台运行了,关掉终端也不会中断。
4. 反向代理设置
Nginx用来处理外部请求。编辑配置文件 /etc/nginx/sites-available/blog:
server {
listen 80;
server_name blog.example.com;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
保存后启用站点,重启Nginx:
ln -s /etc/nginx/sites-available/blog /etc/nginx/sites-enabled/
nginx -t
systemctl reload nginx
5. 域名与HTTPS
把域名DNS指向服务器IP,等生效后用Certbot加HTTPS:
sudo certbot --nginx -d blog.example.com
之后访问就会自动跳转到https,浏览器也不再提示不安全。
6. 自动化部署小技巧
每次手动拉代码太麻烦?可以写个脚本 deploy.sh:
#!/bin/bash
echo "拉取最新代码..."
git pull origin main
npm install
npm run build
pm2 reload blog-service
echo "部署完成!"
赋予权限后一键运行:
chmod +x deploy.sh
./deploy.sh
更进一步,还能结合GitHub Actions,在推送代码后自动触发服务器更新,真正实现“提交即上线”。