Nginx 获取真实客户端 IP:先划清可信代理边界 网站接入反向代理或负载均衡后,源站看到的连接地址通常是代理地址。于是很多配置直接读取 X-Forwarded-For,把最左侧内容当成访客 IP。问题在于:请求头可以由客户端自行发送,只有可信代理经过正确处理后交给源... yunqueblog/ 技术教程/ 2026-10-01/ 3 阅读
PostgreSQL EXPLAIN 入门:先找估算偏差,再决定要不要建索引 一条查询变慢,最容易冲动的做法是立刻给条件列加索引。但慢查询可能来自数据分布变化、返回结果过多、错误的行数估计,甚至应用网络与序列化。执行计划的价值,是把“感觉数据库慢”变成可检验的假设。本文以 PostgreSQL... yunqueblog/ 技术教程/ 2026-10-01/ 3 阅读
Git worktree 实战:保留当前现场,同时开一个修复目录 功能做到一半,线上问题突然需要修复。与其反复保存现场、切换分支和恢复依赖,可以为同一个仓库增加一个工作目录。Git worktree 适合并行查看不同分支、验证历史提交或临时修复;它共享仓库数据,但每个目录拥有自己的... yunqueblog/ 技术教程/ 2026-10-01/ 3 阅读
Python 虚拟环境排错:先确认解释器,再检查依赖 pip 提示安装成功,程序却说找不到模块,很多时候不是包消失了,而是安装和运行使用了不同的 Python。虚拟环境的价值是为项目建立独立依赖目录,但它不会替你决定 IDE、终端、计划任务到底调用哪个解释器。本文先用 ... yunqueblog/ 技术教程/ 2026-10-01/ 5 阅读
SQLite 在线备份别只复制 db 文件:建立可恢复的备份流程 SQLite 把数据库放进文件,容易让人把“复制文件”误认为完整备份方案。真正要保证的是:备份能够表示一个一致的数据库状态,而且恢复时应用能读懂它。本文针对仍在被应用使用的普通 SQLite 数据库;示例会创建新备份... yunqueblog/ 技术教程/ 2026-10-01/ 3 阅读
用 systemd timer 管理定时脚本:从首次运行到失败排查 定时脚本最难维护的部分,通常不是时间表达式,而是“它以谁的身份运行、工作目录在哪里、失败后去哪里看”。在使用 systemd 的 Linux 主机上,可以让 service 描述工作,让 timer 描述触发时机。下... yunqueblog/ 技术教程/ 2026-10-01/ 3 阅读
HTTP 缓存验证实战:用 ETag 与 304 区分“没更新”和“没请求” 网页刷新后没有变化,既可能是内容没更新,也可能是浏览器仍在使用缓存。排查时先拆开两个问题:这次请求有没有发出去;服务器确认的资源版本是否改变。本文适用于普通 GET 页面或静态文件的缓存检查,示例域名和版本标识需要替... yunqueblog/ 技术教程/ 2026-10-01/ 6 阅读
Mistral 慕尼黑中心启用:工业AI把重点放到仿真与工程现场 2026年9月28日,Mistral 宣布启用位于德国慕尼黑的新中心,布局物理AI与工业AI研究,并安排应用工程团队服务企业伙伴。这次动作把模型研发与制造业实际问题放得更近,汽车、能源等行业的工程工作成为重点。查看官... yunqueblog/ 最新资讯/ 2026-09-30/ 13 阅读
NVIDIA 发布智能体安全平台:给长期运行的AI划清权限边界 2026年9月28日,NVIDIA 宣布推出 Open Agent Safety Platform,组合 OpenShell 开源软件与 Sentry 参考系统设计。平台面向从测试到部署的AI智能体,希望让组织能够在... yunqueblog/ 最新资讯/ 2026-09-30/ 10 阅读
GPT-6.1 Sol 发布:开发者该怎样评估这次性价比升级? 2026年9月29日,OpenAI 发布 GPT-6.1 Sol。官方将它定位为面向编程、电脑操作和专业工作的升级型号,并称其在部分评测中接近 GPT-6 Astra。对需要反复读文档、改代码、调用工具的开发者,这次... yunqueblog/ 最新资讯/ 2026-09-30/ 8 阅读