nginx www 跳转非www 301:canonical 冲突与验证文件 301 失败的两个坑
站点同时用 www 和非 www 服务同一内容会造成 SEO 重复内容、与 canonical 冲突。nginx 做 www 跳转非www 的 301 归一时,两个坑容易翻车::80 用 $host 会保留 www、百度验证器拒收 301 导致验证失败。
阅读全文 →记录 Web 工程实践:架构、性能、部署与踩过的坑。
站点同时用 www 和非 www 服务同一内容会造成 SEO 重复内容、与 canonical 冲突。nginx 做 www 跳转非www 的 301 归一时,两个坑容易翻车::80 用 $host 会保留 www、百度验证器拒收 301 导致验证失败。
阅读全文 →给生产 Django+uWSGI 站点打补丁后重启,站点直接返回 502?根因常是双 master 并存(uwsgi reload 只重载 pidfile 记录的老实例,真正在服务的旧 master 没被 reload)+ 本机 pgrep/ps -C 取 PID 失灵。附一条踩坑换来的干净重启 SOP。
阅读全文 →装 WSL2 卡住的人,八成是卡在同三个报错上:SetupWizard ended prematurely、WslRegisterDistribution failed、以及 wsl --install 长时间不动。本文逐个给出本机实测的报错原文、根因、可复制的修复命令与验证方式,并附一份安装前 30 秒自检清单。
阅读全文 →浏览器拦下红屏 NET::ERR_CERT_DATE_INVALID,99% 是证书过期。本文给出根因二分排查法(服务端真过期 vs 客户端时间错)、一个能读出"到底过期了多久"的纯标准库检测脚本(附过期站点实证),以及不依赖续期工具的独立预警方案。
阅读全文 →搜 wsl_update_x64.msi、Ubuntu2204 AppxBundle 下载的人,多半正照着一份过时的离线安装教程操作。本文给出结论:新版 Windows 上这个 msi 大概率不需要且会安装失败;正确的装法只有三行命令;离线包只在纯内网才有价值。附实测文件校验值与四个高频坑。
阅读全文 →个人技术站用纯服务端渲染 Markdown,常踩两个隐性坑:文章标题与正文 # 标题叠加出"双 H1"伤害 SEO;代码块在白天模式黑底浅字看不清。本文用自写的 Markdown Treeprocessor 扩展做标题降级(且不误伤代码块),并给出 Tailwind Typography 的代码块样式修复。
阅读全文 →同一个 "Expecting value: line 1 column 1 (char 0)" 可能对应空响应、HTML 错误页、裸字符串、Python None 四种完全不同的成因——光看报错根本分不出来。本文给出 8 种成因的实测报错原文对照表、一行定位脚本,以及本地文件/HTTP 接口/LLM 返回三类场景的排查清单。
阅读全文 →连接报错到底是"被拒绝"还是"超时"?本文用本机实测讲清 RST 与 DROP 的差异,并给出 Connection refused 排查清单。
阅读全文 →一个连接持有写锁未释放时,另一个连接写入就抛 database is locked。本文用最小复现讲清根因,并给出 busy_timeout、连接串行化、WAL 三种解法。
阅读全文 →