告别手动传文件,利用 Git Hooks 实现代码推送到服务器的全自动部署

告别 FTP 时代 以前修改博客的前端代码或者自己的小项目,总是在本地改完,用 FTP 软件拖到服务器,极其繁琐,且版本经常搞混。 稍微研究了一下 Git 底层的钩子逻辑(Git Hooks),花半小时搞定了一套极简的自动化部署流水线。 ...

2024-11-10 · 1 分钟 · Moxuan

1核1G的小鸡怎么跑 MySQL?记一次 MariaDB 的极限内存压榨

资源报警 手里有一台极其廉价的 1核 1G 内存的 VPS,跑了一个 WordPress。最近只要稍微有点访问量,系统就会因为内存耗尽触发 OOM,直接把数据库进程杀掉,导致网页报 “Error establishing a database connection”。 ...

2024-11-02 · 1 分钟 · Moxuan

宿舍网络终极改造:旁路由模式下的透明代理分流实践

网络架构重组需求 之前的路由器虽然刷了 OpenWrt,但性能太弱,跑加解密流量的时候 CPU 直接飙到 100%,严重影响室友打游戏的延迟。 搞了一台 N1 盒子当旁路由,主路由还是用原厂的承担拨号和无线 AP。 ...

2024-10-25 · 1 分钟 · Moxuan

服务莫名其妙退出?善用 journalctl 查看系统底层日志

最近挂在后台的一个自己写的 Python 监控脚本老是莫名其妙挂掉,重新启动过段时间又没了。看它自己的输出也看不出什么问题。 最后老老实实用系统级的日志工具来查。因为我是把它做成了 systemd 的守护进程运行的,所以直接用 journalctl 命令: ...

2024-10-15 · 1 分钟 · Moxuan

研究了一下 Cloudflare 的页面规则,静态资源直接起飞

把域名托管给 Cloudflare 之后,发现首页加载还是差那么点意思。打开浏览器 F12 看了一下 Network,很多图片每次还要回源站去请求。 直接进 CF 控制台,在 Rules -> Page Rules 里面加了一条规则。把图片路径(比如 *moxuan.de/images/*)的缓存级别直接调成了 Cache Everything(缓存所有内容),然后加上 Edge Cache TTL 设置为一个月。 ...

2024-09-28 · 1 分钟 · Moxuan

数据无价!写个 Shell 脚本把博客定时打包备份

经历了之前几次瞎搞把环境弄崩的惨痛教训后,深刻体会到了“数据备份”的重要性。不能总指望云服务商不跑路,自己手里有备份才踏实。 用 Shell 简单写了个打包脚本,每天凌晨两点自动把博客目录打包成 tar.gz 压缩文件。 ...

2024-08-02 · 1 分钟 · Moxuan

VPS 磁盘爆满报警,记录几个极其好用的 Docker 清理命令

早上服务器的监控脚本发来预警,说这台 20G 硬盘的小机器可用空间不足 5% 了。 登上去用 df -h 一看,确实快满了。顺着用 du -sh /* 往下扒,发现罪魁祸首是 Docker 的目录。平时瞎折腾拉了一堆镜像,旧容器删了但悬空镜像还在占空间。 ...

2024-07-14 · 1 分钟 · Moxuan

Nginx 反向代理踩坑:跨域资源共享 (CORS) 报错怎么破

今天在给一个前后端分离的项目配置 Nginx 反代时,前端控制台一片红,全都是 CORS Error。 分析了一下,前端域名和后端接口的域名不一样,浏览器处于安全机制把请求拦截了。 ...

2024-07-09 · 1 分钟 · Moxuan

服务器遭遇疯狂 CC 攻击,祭出 Fail2ban 封禁恶意 IP

被制裁的早晨 早上起来发现博客打不开了,登进终端一看,Load Average(系统负载)飙到了 15。top 命令一看,Nginx 进程占了 99% 的 CPU。 用 tail -n 100 /var/log/nginx/access.log 一看,某个段的海外 IP 正在以每秒几百次的频率狂刷我的查询接口,典型的 CC 攻击。 ...

2024-06-11 · 1 分钟 · Moxuan

服务商跑路前夕,用 rsync 无感迁移 100G 网站数据

刺激的突发事件 在某个论坛买的年付便宜 VPS 突然收到发卡商的群发邮件,说由于上游机房问题,服务器可能在 48 小时后断网清退。机器上还挂着我好几个在跑的数据采集项目,大概有 100G 的碎文件。 如果用 scp 或者 sftp 慢慢拖,这破线路的速度估计传完机器都停机了。必须上增量同步神器:rsync。 ...

2024-05-20 · 2 分钟 · Moxuan