记录代码,也记录踩过的坑

后端开发 · Linux 运维 · 网络协议 · 数据库 · 容器与自动化,偶尔写点折腾笔记。

Docker 多阶段构建:把镜像从 900MB 砍到 80MB

容器Docker 2026-07-02 · 阅读 1,980

编译型语言最容易踩的坑:把整个编译工具链、源码、包缓存都塞进运行镜像。用 multi-stage build,builder 阶段负责编译,final 阶段只 COPY 二进制,镜像体积能小一个数量级,攻击面也更小。

一次 MySQL 慢查询排查:从 EXPLAIN 到联合索引

数据库MySQL 2026-06-25 · 阅读 2,640

列表页接口偶发几秒,慢查询日志里一条 LIKE '%xx%' 全表扫描。本文记录用 EXPLAIN 看 type=ALL、rows 扫描行数,最后改写成可走索引的前缀/全文方案,并补了 (status, created_at) 联合索引。

SSH 安全加固清单:改端口、禁密码登录、Fail2ban

Linux安全 2026-06-18 · 阅读 3,520

VPS 暴露在公网,auth.log 里全是爆破尝试。这份清单覆盖:改默认端口、禁用 root 密码登录只留密钥、UseDNS no 加速握手、以及用 fail2ban 对反复失败的 IP 自动封禁。

理解 TLS 握手里的 SNI:为什么一台机器能托管多个域名

网络HTTPS 2026-06-11 · 阅读 1,450

HTTPS 建立加密通道前,客户端得先告诉服务器「我要访问哪个域名」,否则服务器不知道该出示哪张证书——这就是 SNI。它在 ClientHello 里明文传输,也是 443 按域名分流(ssl_preread)能成立的基础。