服务器遭遇 CC 攻击,用 Fail2ban 自动封禁恶意 IP

早上起来发现博客打不开了,登进终端一看,Load Average 飙到了 15。top 命令一看,Nginx 进程占了 99% 的 CPU。 用 tail -n 100 /var/log/nginx/access.log 一看,某个段的海外 IP 正在以每秒几百次的频率狂刷我的查询接口,典型的 CC 攻击。虽然带宽没被打满,但后端查询接口扛不住这么高的并发,服务器直接卡死了。 ...

2024-10-10 · 3 分钟 · Moxuan

数据库备份策略:从 mysqldump 到自动化脚本

数据库备份这件事,说起来容易,真要做好还挺考验耐心的。我之前就吃过亏:有一次手滑删错表,结果发现最近的备份是一周前的,中间的数据全丢了。从那以后,我对数据库备份就特别上心。 ...

2024-09-25 · 3 分钟 · Moxuan

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

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

2024-09-12 · 4 分钟 · Moxuan

用 Nginx 给静态博客加速的完整配置

我的博客是用 Hugo 生成的静态站点,生成之后就是一堆 HTML、CSS、JS 和图片文件。这种静态站点最适合用 Nginx 直接托管,速度快、配置简单、资源占用低。 ...

2024-09-05 · 3 分钟 · Moxuan

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

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

2024-08-25 · 3 分钟 · Moxuan

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

今天在给一个前后端分离的项目配置 Nginx 反代时,前端控制台一片红,全都是 CORS Error。前端的请求发到了 api.example.com,而后端服务跑在 localhost:8080,域名不一样,浏览器的同源策略就把请求拦截了。 ...

2024-08-15 · 3 分钟 · Moxuan

Docker Compose 部署常用服务总结

刚开始用 Docker 的时候,我写了一大串 docker run 命令,参数又多又乱,后来想改个端口或者加个环境变量,得翻半天历史记录。自从换成 Docker Compose 之后,部署和管理容器变得舒服多了。 ...

2024-08-08 · 3 分钟 · Moxuan

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

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

2024-07-22 · 3 分钟 · Moxuan
已复制到剪贴板