谁在偷我的带宽?用 Nginx 漏桶算法限流防恶意爬虫

年底的突发流量 本来在查资料,结果发现自己博客图片刷不出来了。看了一下账单,好家伙,CDN 流量半小时跑了 5G。 日志拉下来一分析,某个爬虫团队正在丧心病狂地遍历下载我博客所有的附件目录,而且 User-Agent 伪装成了正常的 Chrome 浏览器,Fail2ban 根据 UA 封不掉。 ...

2024-12-31 · 1 分钟 · Moxuan

根目录满了怎么扩容?利用 LVM 动态扩展磁盘容量实录

磁盘报警 机房一台老的虚拟服务器跑业务跑了半年,日志把 / 根目录直接撑爆了。在控制台花钱给硬盘买到了 40G,但重启进系统一看,df -h 还是显示 20G,因为新加的空间系统根本不认。 ...

2024-12-28 · 1 分钟 · Moxuan

容器间连不上?深入剖析 Docker Bridge 网络的 DNS 坑

容器互联的困境 我手起刀落用 docker run 跑了一个 PHP 应用的容器,又用 docker run 跑了一个 MySQL 的容器。在配置 PHP 连数据库时,我填了 MySQL 容器的名称 db_mysql,结果死活报错:Unknown MySQL server host 'db_mysql'。 ...

2024-12-14 · 1 分钟 · Moxuan

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

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

2024-11-02 · 1 分钟 · Moxuan

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

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

2024-10-15 · 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

手里的小鸡越来越多?部署 Uptime Kuma 给全员上探针

为什么需要监控? 最近沉迷在 NodeSeek 上捡垃圾,手里不知不觉攒了七八台各地的便宜 VPS。有些线路极其不稳定,动不动就掉线。平时要靠自己手动去 PING 看看死没死,效率太低。 为了解放自己,决定部署目前开源界最火的监控面板:Uptime Kuma。 ...

2024-04-05 · 1 分钟 · Moxuan