将“HNG_BOILERPLATE” Express.js 应用的后端部署到生产服务器
内容提要
本文介绍了使用GitHub Actions工作流程将Express.js样板应用的后端部署到EC2 Ubuntu服务器的生产环境。部署过程包括设置依赖项、拉取代码、运行测试、构建后端,并确保其作为服务运行。工作流程包括触发、检出代码、设置Node.js、管理Git远程和本地更改、拉取最新更改、安装依赖项、运行测试、构建后端、设置和重启服务、验证部署。还介绍了服务配置和Nginx配置,以及SSL证书设置和最终步骤。通过遵循以上步骤,可可靠地更新和维护Express.js样板应用的后端,并实现SSL安全访问。
关键要点
-
本文介绍了使用GitHub Actions将Express.js样板应用的后端部署到EC2 Ubuntu服务器的过程。
-
部署过程包括设置依赖项、拉取代码、运行测试、构建后端,并确保其作为服务运行。
-
前提条件包括:EC2 Ubuntu服务器、安装Node.js 20、npm、Nginx、GitHub Actions Runner和Certbot。
-
工作流程触发于对prod分支的推送。
-
使用actions/checkout@v3拉取最新代码,确保获取完整历史。
-
使用actions/setup-node@v3安装Node.js版本20。
-
删除旧的远程URL以防止冲突,并存储或重置本地更改以保持工作目录干净。
-
使用GitHub令牌从prod分支拉取最新更改。
-
使用yarn install --frozen-lockfile安装Node.js依赖项,以确保与yarn.lock文件一致。
-
使用yarn test运行测试,以验证后端的稳定性。
-
使用yarn build构建后端,并删除之前的构建产物以防止冲突。
-
将服务文件复制到/etc/systemd/system目录,并重新加载systemd管理器配置,重启服务以应用最新更改。
-
等待服务启动并检查其状态,若服务处于活动状态则部署成功,否则失败。
-
服务配置文件定义了Express.js应用后端在服务器上的运行方式。
-
Nginx作为反向代理,将传入流量路由到Express.js后端应用,并配置SSL。
-
使用Certbot获取SSL证书并配置Nginx以支持HTTPS。
-
确保Nginx配置指向后端的端口,并启用和启动systemd服务。
-
本文档概述了Express.js样板应用后端的自动化部署过程,确保最新更改一致地部署到生产环境。
延伸问答
如何将Express.js应用的后端部署到EC2服务器?
可以通过GitHub Actions工作流程,将代码推送到prod分支,自动执行部署步骤,包括设置依赖、拉取代码、运行测试和构建后端。
部署Express.js后端需要哪些前提条件?
需要EC2 Ubuntu服务器、安装Node.js 20、npm、Nginx、GitHub Actions Runner和Certbot。
如何确保Express.js后端服务在服务器上正常运行?
通过检查服务状态,如果服务处于活动状态,则表示部署成功;否则,需排查问题。
Nginx在Express.js后端部署中起什么作用?
Nginx作为反向代理,将传入流量路由到Express.js后端应用,并配置SSL以支持HTTPS。
如何使用Certbot为Nginx配置SSL证书?
可以使用命令'sudo certbot --nginx -d your-domain.com'来自动获取SSL证书并配置Nginx。
GitHub Actions工作流程是如何触发的?
工作流程在对prod分支进行推送时触发,自动执行后续的部署步骤。