现象
- 访问
https://x.bonan.online/login偶尔显示为z.bonan.online(或其它子域)页面内容 - 地址栏域名不变,但返回内容来自其它子域
架构背景
- Nginx:
*.bonan.online统一反代到http://127.0.0.1:3111 - FRPS:
vhostHTTPPort=3111按Host分流到不同frpc的customDomains
根因
Nginx 启用了全局 proxy_cache,但默认缓存 key 不包含 $host。
由于所有子域都反代到同一上游 127.0.0.1:3111,不同子域的相同路径(如 /login)会共用同一份缓存,从而出现“串页”。
证据:
nginx -T出现:proxy_cache cache_one;- 定位文件:
/www/server/nginx/conf/proxy.conf
本次修改点(方案一:修正缓存 key,隔离不同域名缓存)
修改文件
- 文件:
/www/server/nginx/conf/proxy.conf - 变更:为
cache_one设置包含$host的缓存 key
新增/设置:
nginx
proxy_cache_key "$scheme$host$uri$is_args$args";
清理旧缓存 + 重载
bash
rm -rf /www/server/nginx/proxy_cache_dir/*
nginx -t && nginx -s reload
验证方式
- 反复访问:
https://x.bonan.online/loginhttps://z.bonan.online/login
- 确认不再出现“域名不变但内容串到其它子域”的情况
排查命令记录
检测是否启用缓存:
bash
nginx -T 2>&1 | grep -nE "proxy_cache(_path|_key|_valid|_use_stale)?\\b"
定位 proxy_cache cache_one; 来源:
bash
nginx -T 2>&1 | grep -n -C 5 "proxy_cache cache_one"
定位具体文件:
bash
grep -RIn "proxy_cache cache_one" /www/server/nginx/conf /www/server/panel/vhost/nginx
grep -RIn "keys_zone=cache_one" /www/server/nginx/conf /www/server/panel/vhost/nginx

本文是原创文章,采用 CC BY-NC-SA 4.0 协议,完整转载请注明来自 布总
评论
隐私政策
0/500
滚动到此处加载评论...
