经过一段时间的实践调研后,我决定将 Picals 项目的部署方案分为两个部分:前端部署 和 后端部署。
# 前端部署
前端部署的方案主要基于传统 Nginx,打包 dist 上传至服务器进行代理,并使用 Cloudflare 来代理域名,提供免费 CDN,使其能够在国内进行更快的访问。
同时为了加速页面的加载速度,为 Nginx 开启了 brotil 压缩优化。
# 后端部署
后端部署的方案参考借鉴了神光的部署方案,主要是 将后端服务放到 Docker 上进行运行,并且通过 nginx 容器开启 https。。
对于后端部署的详细方案描述,可以查看我先前撰写的一篇文章:如何使用 Docker 部署 Nest.js,其中包含了详细的部署步骤。
总而言之,后端的部署方案主要包含以下几个步骤:
- 打包 nest 应用
- 使用 Docker 对 nest 应用进行部署
- 使用 nginx 反向代理后端服务,启用 https
- Docker 部署最佳实践(CI/CD)
至于我为什么选择 Docker 进行部署呢?主要有以下几个原因:
- Docker 是一个开源的应用容器引擎,可以让开发者打包应用和依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
- 我的服务器的操作系统是基于 Linux 的发行版 CentOS,无法安装版本 > 16 的 Node.js,并且无法安装指定版本的 pnpm。而 Docker 则完全无需担心这部分的问题,你只需要一台能够跑 Docker 的服务器,并且能够拉取对应的镜像就可以了。