<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[snysy的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/snysy</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; snysy]]></copyright><item><title><![CDATA[序列从 90 万涨到 512 万：Prometheus 高基数治理、标签归一化与硬限兜底实战]]></title><link>https://blog.youkuaiyun.com/snysy/article/details/170242213</link><guid>https://blog.youkuaiyun.com/snysy/article/details/170242213</guid><author>snysy</author><pubDate>Sat, 07 Nov 2026 13:41:28 +0800</pubDate><description><![CDATA[Prometheus 自己挂了。我叫醒我的那套东西，自己先不叫了。告警之所以还能发出来，纯粹是因为 Alertmanager 是独立进程，它还活着。登录上去看，Pod 状态是OOMKilledLimit 是 24 Gi，它涨到 26 Gi 就被内核杀了。我不是没设 limit——是设了 limit 之后它照样涨过去了，然后被杀。没有去调 limit，而是先去看它到底在存什么。# 5120318512 万条活跃时间序列，跑在一台 32 GB 的机器上。]]></description><category></category></item><item><title><![CDATA[一条 500 报错，为什么日志里搜得到它、链路里却画不出它？TraceID 贯穿、四个断链边界与采样取舍实战]]></title><link>https://blog.youkuaiyun.com/snysy/article/details/170242086</link><guid>https://blog.youkuaiyun.com/snysy/article/details/170242086</guid><author>snysy</author><pubDate>Sat, 07 Nov 2026 13:30:19 +0800</pubDate><description><![CDATA[一条 500 报错，我能用request_id把它对应的那几行日志捞出来。把后端应用日志也接进来，用同一个 ID 串起来，做到一次 500 一键拉出整条调用链。我照着做了。花了两个晚上，把 PHP-FPM、Go 服务、Kafka 消费者的日志都打上了trace_id，Promtail 的 pipeline 里加了一段从日志正文里抽trace_id的正则。跑通之后我很有成就感：随便挑一条 500，一查，Nginx、PHP、Go、消费者，四个服务的日志全出来了。然后我就被现实教育了。]]></description><category></category></item><item><title><![CDATA[Nginx 日志里混进来了别人的请求？Loki 日志归集、Host 归属核对与多站点分桶实战]]></title><link>https://blog.youkuaiyun.com/snysy/article/details/170240967</link><guid>https://blog.youkuaiyun.com/snysy/article/details/170240967</guid><author>snysy</author><pubDate>Sat, 07 Nov 2026 11:40:07 +0800</pubDate><description><![CDATA[这本身不算稀奇——互联网上扫描器到处走，Nginx 收到这种请求是常态。让我愣了一下的是它的Host头，是一个我从没见过的域名。# 3188 "another-site.net" ← 不是我的域名# 2704 "1.2.3.4" ← 直接用 IP# 1492 "admin.test.xyz" ← 不是我的域名一周的访问日志里，将近 40% 的请求 Host 头根本不是我配过的域名。公网扫描器、爬虫直接打 IP；别人把自己的域名解析到了我的 IP（可能是配错了，也可能是想蹭流量）；]]></description><category></category></item><item><title><![CDATA[Nginx 高并发调优实操笔记：从默认配置到扛住上万并发]]></title><link>https://blog.youkuaiyun.com/snysy/article/details/170144878</link><guid>https://blog.youkuaiyun.com/snysy/article/details/170144878</guid><author>snysy</author><pubDate>Thu, 05 Nov 2026 17:04:49 +0800</pubDate><description><![CDATA[只调不改系统 fd 限制：最常见，改了也不生效systemd 服务的 limits.conf 不生效：必须用加，被这个坑了很久设太大：超过核数反而变慢，跟核数一致即可调太高：压缩耗 CPU，5 左右就够静态资源日志没关：海量小文件请求下，日志 IO 是隐形杀手后端 keepalive 忘清 Connection 头：长连接起不来，等于白配somaxconn和 listen backlog 不匹配：Nginx 的值被系统截断，超出的连接直接丢调完不压测：不知道效果，也不知道新瓶颈在哪。]]></description><category></category></item><item><title><![CDATA[MySQL 慢查询日志开启与优化实操笔记]]></title><link>https://blog.youkuaiyun.com/snysy/article/details/170144658</link><guid>https://blog.youkuaiyun.com/snysy/article/details/170144658</guid><author>snysy</author><pubDate>Thu, 05 Nov 2026 16:56:01 +0800</pubDate><description><![CDATA[声明：本文为个人服务器运维过程中的实操记录，仅用于技术交流与经验分享，内容为通用的 MySQL 排查方法论，不涉及任何商业推广。]]></description><category></category></item><item><title><![CDATA[Docker 部署 Nginx 反向代理 + 自动 HTTPS 实操笔记]]></title><link>https://blog.youkuaiyun.com/snysy/article/details/170143751</link><guid>https://blog.youkuaiyun.com/snysy/article/details/170143751</guid><author>snysy</author><pubDate>Thu, 05 Nov 2026 16:11:40 +0800</pubDate><description><![CDATA[本文为个人技术实践记录，仅用于技术交流与经验分享，不构成任何购买建议或商业推广。文中所有命令均在测试环境实际执行验证，可直接复现。]]></description><category></category></item><item><title><![CDATA[Nginx 502 Bad Gateway 完整排查思路（PHP-FPM / 上游 / 超时三类原因全覆盖）]]></title><link>https://blog.youkuaiyun.com/snysy/article/details/169945742</link><guid>https://blog.youkuaiyun.com/snysy/article/details/169945742</guid><author>snysy</author><pubDate>Tue, 03 Nov 2026 17:07:06 +0800</pubDate><description><![CDATA[502 不等于 Nginx 挂了，先看 error.log 确定上游是谁，别张口就重启 Nginx。= PHP-FPM 满了，这是最高频的 502 原因，重点查和backlog。按内存算，别拍脑袋写 100：算错了直接把机器撑爆，反而更容易 OOM 出 502。升级 PHP 版本后务必核对 socket 路径，Nginx 和 PHP-FPM 两边不一致是最隐蔽的 502。调大超时是兜底不是解药的真正解法是让后端变快（查慢 SQL）。要查 OOM，进程被杀而不是 Nginx 拒绝。]]></description><category></category></item><item><title><![CDATA[Linux服务器磁盘空间占满排查与清理实操笔记]]></title><link>https://blog.youkuaiyun.com/snysy/article/details/169945307</link><guid>https://blog.youkuaiyun.com/snysy/article/details/169945307</guid><author>snysy</author><pubDate>Tue, 03 Nov 2026 15:35:20 +0800</pubDate><description><![CDATA[先df分清是空间满还是 inode 满，两者处理思路完全不同，别一上来就删大文件du和df对不上，先查，八成是被删除但没释放句柄的文件，重启对应进程即可正在被进程写入的日志用，别用rmrm不 reload 不释放空间Docker 的日志上限一定要提前配里加上max-size，能省很多事MySQL binlog 记得设过期时间，尤其是开了主从或者频繁写入的库清理只是应急，轮转和告警才是根治logrotatejournald。]]></description><category></category></item><item><title><![CDATA[HTTPS证书自动续期故障排查记录]]></title><link>https://blog.youkuaiyun.com/snysy/article/details/169944925</link><guid>https://blog.youkuaiyun.com/snysy/article/details/169944925</guid><author>snysy</author><pubDate>Tue, 03 Nov 2026 15:25:07 +0800</pubDate><description><![CDATA[80 端口不要随便关，Let’s Encrypt http-01 验证必须用 80 端口，就算你网站强制跳 HTTPS 也得开着 80自动续期一定要加重载 Nginx/Apache 的钩子，不然续了也白续定时任务要加日志输出，不然失败了根本不知道不用自己写 crontab，新版 certbot 的 systemd timer 比自己写的 crontab 靠谱，默认安装就有，不会写错路径和参数可以配置邮件通知，续期失败发邮件提醒，省得证书过期了才发现。]]></description><category></category></item><item><title><![CDATA[# 磁盘IO性能fio测试实操笔记]]></title><link>https://blog.youkuaiyun.com/snysy/article/details/169850801</link><guid>https://blog.youkuaiyun.com/snysy/article/details/169850801</guid><author>snysy</author><pubDate>Mon, 02 Nov 2026 23:51:08 +0800</pubDate><description><![CDATA[很多人买 VPS 只看 CPU 和内存，忽略磁盘 IO 性能，结果跑数据库、存文件的时候卡得要死，甚至有的超售严重的 VPS，磁盘随机读写速度还不如机械硬盘，跑个 WordPress 首页加载要几秒。fio 是目前最准确的磁盘性能测试工具，比 dd 测试准很多，能测随机读写、顺序读写、IOPS 这些核心参数，这篇讲怎么安装 fio，怎么看测试结果，怎么判断磁盘性能好不好。从图里能一眼看出：读性能明显强于写性能，IOPS 和带宽都是读高写低，而延迟则是写高于读，符合 NVMe SSD 的典型特征。]]></description><category></category></item><item><title><![CDATA[WordPress伪静态404故障排查笔记]]></title><link>https://blog.youkuaiyun.com/snysy/article/details/169850710</link><guid>https://blog.youkuaiyun.com/snysy/article/details/169850710</guid><author>snysy</author><pubDate>Mon, 02 Nov 2026 23:40:33 +0800</pubDate><description><![CDATA[配置完之后，刷新网站，点击文章、分类、标签、分页都试试，所有页面都能正常打开之后，再去 WordPress 后台固定链接设置里选你想要的链接格式（一般选「文章名」对 SEO 最好），点保存就可以了。这种，能正常访问，结果一改成固定链接伪静态，点所有文章页、分类页全都是 404 Not Found，只有首页能打开。这个问题 90% 的新手装 WordPress 都会遇到，要么是 Nginx 没配伪静态规则，要么是配置没加载，要么是权限不对，这篇把我排查这个问题的完整过程记下来，遇到同样问题照着一步步查就行。]]></description><category></category></item><item><title><![CDATA[BBR Plus编译与开启实操记录]]></title><link>https://blog.youkuaiyun.com/snysy/article/details/169850646</link><guid>https://blog.youkuaiyun.com/snysy/article/details/169850646</guid><author>snysy</author><pubDate>Mon, 02 Nov 2026 23:34:21 +0800</pubDate><description><![CDATA[买了香港 VPS 的朋友应该都有感受，晚高峰的时候看 YouTube 速度上不去，下载国内文件只有几百 KB，开网页都卡。这时候开启 BBR 拥塞控制算法能有效提升高延迟、有丢包的网络环境下的传输速度，普通原版 BBR 提升有限，BBR Plus 针对国内网络环境做了优化，晚高峰速度提升明显，这篇记录我在 Debian 12 上编译开启 BBR Plus 的完整过程，以及开启前后的测速对比。BBR Plus 是社区优化的版本，源码在 GitHub 上，我们直接编译模块就行，不用换整个内核，不容易出问题。]]></description><category></category></item><item><title><![CDATA[认证记录全绿，邮件为什么还是进了垃圾箱？自建 Postfix+Dovecot 的收信验证、传输加密与发信信誉排查实战]]></title><link>https://blog.youkuaiyun.com/snysy/article/details/169653989</link><guid>https://blog.youkuaiyun.com/snysy/article/details/169653989</guid><author>snysy</author><pubDate>Sat, 31 Oct 2026 23:59:12 +0800</pubDate><description><![CDATA[注册了，验证邮件一直没收到。我第一反应是“用户填错邮箱”。让客服要了收件地址，三个全是 Gmail。4203 封积压。我用“我发垃圾邮件了？但我是个五人小站，一个月发不到两万封，全部是事务邮件（注册验证、订单通知、找回密码）。“IP 是不是在什么黑名单里？去查，果然——被列进了一个叫 PBL 的名单。“这个 IP 段属于住宅/动态/云主机网络，按策略性收录。它不是说我垃圾，它是在说“这个 IP 段按惯例不该直连发信”。“那先改中继，把邮件发出去。配了 smarthost，队列慢慢消下去了。]]></description><category></category></item><item><title><![CDATA[为什么 SELECT 3 也挡不住邻居？Redis 多租户隔离、ACL 键模式与 TLS SNI 路由实战]]></title><link>https://blog.youkuaiyun.com/snysy/article/details/169653909</link><guid>https://blog.youkuaiyun.com/snysy/article/details/169653909</guid><author>snysy</author><pubDate>Sat, 31 Oct 2026 23:50:59 +0800</pubDate><description><![CDATA[生产 Redis 写入全挂了，业务全 500。我 SSH 上去看日志，满屏都是。内存用满，写命令被拒，缓存全部击穿到 MySQL。第一反应是“流量突增”，但当时是周末下午两点，流量在低谷。第二反应是“某个接口缓存失效”，但看键总数稳定在平常水平。把db3 只有不到 9000 个键，但它是数据批处理服务（）在用；而我业务线的热 key 全在 db0 里，这一周被一点点淘汰光了。我去翻批处理那一侧的发版记录，发现半小时前他们上线了一个新的离线任务，把 60 万条商品详情一次性塞进了 Redis，键前缀。]]></description><category></category></item><item><title><![CDATA[服务器安全加固与入侵检测实战：从SSH加固、防火墙策略到挖矿木马排查]]></title><link>https://blog.youkuaiyun.com/snysy/article/details/169564052</link><guid>https://blog.youkuaiyun.com/snysy/article/details/169564052</guid><author>snysy</author><pubDate>Fri, 30 Oct 2026 21:58:26 +0800</pubDate><description><![CDATA[做运维这些年，最让人后背发凉的不是"服务器挂了"，而是"服务器不知道什么时候已经被别人用了我处理过的最典型一例：一台对外提供服务的 VPS，某天监控告警CPU长期100%，登上去一查——被人种了挖矿程序，跑了整整三天。追溯原因很简单：SSH 用的还是默认 22 端口 + root 密码登录，密码是“公司名+123456”这种。攻击者用字典跑了一晚上就进来了。。SSH被爆破成功后装后门，攻击者随时能回来，你删了挖矿程序他再装一遍；应用漏洞被利用。]]></description><category></category></item><item><title><![CDATA[自建 Git 代码托管服务实战：Gitea 与 GitLab 选型、CI/CD 搭建与仓库存储扩容]]></title><link>https://blog.youkuaiyun.com/snysy/article/details/169563956</link><guid>https://blog.youkuaiyun.com/snysy/article/details/169563956</guid><author>snysy</author><pubDate>Fri, 30 Oct 2026 21:48:23 +0800</pubDate><description><![CDATA[做团队开发这些年，关于代码托管，我经历过三个阶段。第一阶段，所有仓库都放公共平台。图省事，但很快遇到问题：私有仓库数量一多就要付费；大仓库 clone/push 动不动卡住超时；公司要求代码不能出内网，公共平台直接出局。第二阶段，开始有人把代码随手放开发机、NAS 甚至网盘上。这更危险——代码是最不该“只有一份、还没人管”的资产。开发机一重装、磁盘一坏，几个月的提交记录说没就没。第三阶段自建一套 Git 服务，放自己的服务器上。代码数据完全自主：不用担心平台政策变化、项目被下架、私有仓库要涨价；]]></description><category></category></item><item><title><![CDATA[Stable Diffusion 云端部署与出图提速实战：从环境搭建到显存优化的完整踩坑记录]]></title><link>https://blog.youkuaiyun.com/snysy/article/details/169359464</link><guid>https://blog.youkuaiyun.com/snysy/article/details/169359464</guid><author>snysy</author><pubDate>Wed, 28 Oct 2026 15:26:09 +0800</pubDate><description><![CDATA[我想跑 SD，但我是 Mac / 我的显卡只有 8G 显存 / 我那台老机器风扇能起飞，到底该怎么办？答案其实很清楚——上云。租一台按小时计费的 GPU 实例，用完就关，既不用花一两万买 4090，也不用担心本地显卡显存不够、散热压不住、驱动装到崩溃。但云上跑 SD 也不是无脑操作。我见过太多人踩这几个坑：显存爆了报 OOM、出图速度慢到怀疑人生、忘了关机月底收到一张几百块的账单、装了一晚上环境最后还是起不来。]]></description><category></category></item><item><title><![CDATA[海外免备案云服务器节点怎么选？香港/日本/新加坡/美国四个节点实测对比与部署实战]]></title><link>https://blog.youkuaiyun.com/snysy/article/details/169357674</link><guid>https://blog.youkuaiyun.com/snysy/article/details/169357674</guid><author>snysy</author><pubDate>Wed, 28 Oct 2026 14:35:50 +0800</pubDate><description><![CDATA[服务器到底放哪。这个问题看似简单，踩坑的人却特别多。我见过把面向欧美客户的站点放在香港的（结果欧美用户访问慢）、把面向国内运营团队的机器放在美东的（结果自己上后台卡到崩溃）、也有为了省几美元选了绕路线路，最后广告费全打了水漂的。节点选址是海外业务的第一块地基，比 CPU 核心数、比内存大小都重要得多。今天把我这几年给十几个海外项目做节点选型的完整方法论拆开讲：先讲清楚什么业务该用境外节点、节点选址的四个决策维度，再给四个主流节点的实测对比，最后是线路验真和免备案部署的完整流程。所有脚本都能直接复制运行。]]></description><category></category></item><item><title><![CDATA[一台机器上放三个站点为什么会串号？Nginx+PHP-FPM 多站点隔离、Cookie 作用域与 HSTS 预埋实战]]></title><link>https://blog.youkuaiyun.com/snysy/article/details/169263287</link><guid>https://blog.youkuaiyun.com/snysy/article/details/169263287</guid><author>snysy</author><pubDate>Tue, 27 Oct 2026 16:12:44 +0800</pubDate><description><![CDATA[那天晚上九点多，我收到一条用户反馈：“我登了自己的后台，刷新一下就跳到另一个站点的后台了。第一反应是 Nginx 配错了。我把三个站点的过了一遍，都对；root目录各自独立，也对；PHP-FPM 的 socket 每个站一个，没混。我又查了一遍 session 存储路径，也是分开的。十分钟之后，我打开浏览器的开发者工具，才看到问题：浏览器给三个站点都种了同一个 cookie。这台机器上我放了三个站点：一个博客、一个小工单系统、一个朋友的小商城。三个站点都是同一根域下的子域——准确地说，是博客挂在。]]></description><category></category></item><item><title><![CDATA[登得上去为什么看不到仓库？自建服务统一接 Keycloak SSO 实战（aud 校验、nonce 重放、角色映射、redirect_uri 精确匹配）]]></title><link>https://blog.youkuaiyun.com/snysy/article/details/169065637</link><guid>https://blog.youkuaiyun.com/snysy/article/details/169065637</guid><author>snysy</author><pubDate>Sun, 25 Oct 2026 15:43:12 +0800</pubDate><description><![CDATA[那天上午九点半，同事在群里发了一张截图——Gitea 登录成功了，进去之后页面一片空白，右上角显示的是一串 UUID 而不是用户名，点任何仓库都报 403。我自己切过去看，登录流程是通的，Keycloak 那边也看到了成功记录，但 Gitea 这边的用户信息全是空的。排查了十分钟发现原因非常简单：我在 Keycloak 的 client scope 里只配了，Gitea 要求拿当用户名，而 profile scope 在 Keycloak 26 里默认只带namegiven_name。]]></description><category></category></item></channel></rss>