服务器日常小技巧
本文最后更新于:2023年4月25日 晚上
描述
分享一些对自己站点管理的一些小技巧
建站工具
- Hexo: 我之前的博客就是使用 Hexo 搭建的,它有丰富的主题仓库,对于我这种比较颜控的人,比较受用。
- Hugo: 当前博客使用 Hugo 写的,之前的 Github 账号由于换手机丢了双因素,导致博客代码也丢了,就尝试了一下 Hugo。
网站提速
- 静态资源选择:图片尽量选用 JPG 格式,PNG 格式的图片普遍要比 JPG 格式的图片大很多。
- 静态资源压缩:过大的资源加载会非常耗时,影响网站渲染的速度,可以压缩一下,用tinypng或者compress都可以,既不降低清晰度,又能压缩大小。
- 静态资源转发:可以去申请一个七牛云账号,使用七牛云的对象存储配合 CDN 加速,既拥有了图片云存储,又拥有了资源加速,一箭双雕。
网站快速更新 & 自重启
一个舒服的网站管理环境能提高网站运营的生活幸福感
- 使用 Docker 进行项目打包,Dockerfile 示例
1 |
|
- 使用 Makefile 配合 Docker 进行镜像推送
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21.PHONY: server build version
registry=example.registry
version=`git describe --tags`
server:
@hexo clean \
&& hexo g \
&& hexo s
version:
@echo "build new version..." \
&& standard-version \
&& git push --follow-tags origin master
deployment: version
@echo "build docker image for origin ..." \
&& hexo clean \
&& hexo g \
&& docker build -t $(registry)/allens-blog/blog:$(version) . \
&& sudo docker push $(registry)/allens-blog/blog:$(version) - SSL 证书:证书只需要在 Docker Compose 里把服务器本地的 Nginx 目录映射打牌 Docker 里面就可以了 , 添加 restart: always 挂掉就会自动重启。
其实可以把证书和私钥一起打包到镜像里面,但是这样就没办法使用 ACME 去维护了,而且把私钥托管到代码里着实有点不太安全,哪怕仓库是私有的,所以建议使用挂载的方式,然后在服务器上装个 ACME。
1
2
3
4
5
6
7
8
9
10version: '3'
services:
backend:
image: example.registry/allens-blog/blog:v0.0.59
restart: always
ports:
- 80:80
- 443:443
volumes:
- /etc/nginx:/etc/nginx - 服务器使用 Makefile 进行部署
1
2
3.PHONY: update
update:
@docker-compose pull && docker-compose down && docker-compose rm && docker-compose up -d当然如果你 CICD 玩的很 6,而且有自己的 Gitlab 那肯定可以更舒服。
网站运维的一些小技巧
- 删除冗余的镜像:网站运行的久了,总会多出很多 tag 为
的镜像,占用磁盘容量还没什么作用,可以使用如下命令进行批量删除 1
docker rmi -f `docker images | grep '<none>' | awk '{print $3}'`
- 删除多余 Pod:K8s 运行的久了也会有很多 Status 为 Evicted 的 Pod,占用磁盘,可以使用如下命令进行批量删除
1
kubectl get pods -n < your namespace > | grep Evicted | awk {'print $1'} | xargs kubectl delete pod -n < your namespace >
- 证书过期:可以使用 MySSL 企业版的监控管理,网站证书过期微信通知
- Nginx 自启:服务器因为 CPU 满了等原因导致重启也是很多人都遇到的问题,可以 Nginx 设为开机自启,推荐使用 chkconfig)
服务器日常小技巧
https://agopher.com/2020/09/25/tech/2020_website/