- Published on
我的网站用Next.js来做
- Authors
- Name
- 祝你好运
我们都知道Next.js在做SEO还有网页加载速度优化方面都非常好,我非常喜欢的功能就是代码的预加载,那我的网站为什么不用Next.js来做呢?
SSR还是SSG?
由于我的博客内容是不会变的,也就是说每个用户进来看到的都一样,所以不需要使用SSR,使用SSG就可以了。
目录结构
我是把nginx和我的Next.js相关的代码放到同一个代码仓库里面的,这样修改配置文件也比较方便。同时,由于我的这个项目比较简单,就没有使用像TurboRepo这样的monorepo管理工具。
my-blog-repo
├─ .git/
├─ .husky/
│ ├─ pre-commit
├─ docker-compose.yml
├─ nginx
│ ├─ ...
└─ nextjs
├─ package.json // 里边有 "lint-staged": {...}
└─ ...
为什么要用nginx?
这个是练习性质的目的,其实如果是SSG,就直接托管到CDN就可以了,没有必要再用nginx和SSR。我的这样的练习性质的做法,是为了模仿真正的SSR,如果是SSR,那肯定要做服务降级,也就是如果服务端渲染失败了,就回退到CSR。当然现在是用不到,但是可以学习到SSR的原理。后面再探索下nginx如何做负载均衡,然后用压力测试工具测试下性能。这样也可以更加深刻的理解SSR的实际应用。
滚动升级?
目前我的网站上nginx和Next.js都只有一个实例,所以不太好做滚动升级,可以手工实现蓝绿发布,但是这样太麻烦了。后面可以做成多实例的,然后再做滚动升级。
压力测试?
压力测试工具:wrk,这个我目前不太熟悉,后面再研究下。
CI/CD?
目前代码是托管到Gitee上的,然后最近两天就把CI/CD部署一下。目前是手动部署的,也就是代码用rsync同步到服务器上,然后手动打镜像,然后重启nginx和Next.js。