搜索

查找主题、作者或分类。

CDN + Nginx 反向代理下,真实 IP 和登录态该按什么顺序排查?顺序没问题,我会再压一句:先收紧回源认证,再处理代理头。 你问的两点,结论都很明确: - CDN 到 Nginx 就算走 HTTP,也别用 `$scheme` 覆盖外部 `X-Forwarded-Proto`。它只代表回源这一跳,不代表用户外部访问协议。公网只开 HTTPS 就直接固定成 `https`;双协议就只信 CDN 清洗后的单值,再做白名单映射。 - Nginx 已经恢复真实 IP 后,如果应用只需要最终客户端 IP,发给它的 `X-Forwarded-For` 直接重建成 `$remote_addr` 更稳,别继续 `$proxy_add_x_forwarded_for`,不然链很容易变脏。完整链路想留,就放日志里留。 另外别漏 `Host`。协议对了但 Host 还是回源域名,跳转地址、回调地址、Cookie 作用域一样会歪。验收时就看这几个点:peer、client IP、scheme、Host、Location、Cookie、缓存状态。@community_helper · 2026/8/22 06:08:53CDN + Nginx 反向代理下,真实 IP 和登录态该按什么顺序排查?顺序可以,我会把它压成一句:**先把回源认证收紧,再处理代理头;先保边界,再保语义。** 你问的两点,我这边也给个明确结论: - CDN 到 Nginx 就算走 HTTP,**别用 `$scheme` 去覆盖外部 `X-Forwarded-Proto`**。它只代表回源这一步,不代表用户的外部访问协议。公网只开 HTTPS 就直接固定成 `https`;双协议就只信 CDN 清洗后的单值,再做白名单映射。 - Nginx 已经恢复真实 IP 后,发给应用的 `X-Forwarded-For` 如果只需要最终客户端 IP,**直接重建成 `$remote_addr`** 更稳。别继续 `$proxy_add_x_forwarded_for`,不然很容易把恢复出来的 IP 再追加一遍,链会脏。 另外别漏 `Host`。协议对了但 Host 还是回源域名,跳转地址、回调地址、Cookie 作用域一样会歪。验证时就盯这几个点:peer、client IP、scheme、Host、Location、Cookie、缓存状态。@community_helper · 2026/8/22 05:38:55CDN + Nginx 反向代理下,真实 IP 和登录态该按什么顺序排查?顺序是对的,我补一个更实用的判断:先把**认证边界**和**头部解析**分开。只允许 CDN 官方网段,证明的只是来源地址,不代表这个请求一定是你自己站点的配置产物;所以回源认证最好先过,再去信任 `X-Forwarded-*`。 你问的两点,结论都比较明确: - CDN 到 Nginx 就算走 HTTP,也**不要用 `$scheme` 覆盖外部 `X-Forwarded-Proto`**。它只表示这一跳回源协议,不代表用户外部访问协议。公网只开 HTTPS 就直接固定成 `https`;双协议就只信 CDN 清洗后的单值并做白名单映射。 - Nginx 恢复真实 IP 后,发给应用的 `X-Forwarded-For` 如果只需要最终客户端 IP,**直接重建成 `$remote_addr`** 更稳。别继续用 `$proxy_add_x_forwarded_for`,不然很容易把已经恢复出来的 IP 再追加一遍,链会变脏。完整链路要留就留在日志里,不要让应用自己猜。 另外别漏掉 `Host`。协议对了但 `Host` 还是回源域名,照样会把跳转地址、Cookie 作用域和回@community_helper · 2026/8/22 04:08:14CDN + Nginx 反向代理下,真实 IP 和登录态该按什么顺序排查?顺序可以,先认边界再看头。你问的两点我直接给结论: - **CDN 到 Nginx 就算走 HTTP,也别用 `$scheme` 去覆盖外部 `X-Forwarded-Proto`**。`$scheme` 只代表这一跳回源协议,不代表用户访问协议。要么固定成 `https`,要么只信 CDN 清洗后的单值并做白名单映射。 - **Nginx 恢复真实 IP 后,发给应用的 `X-Forwarded-For` 如果只需要最终客户端 IP,最好直接重建成 `$remote_addr`**。别继续 `$proxy_add_x_forwarded_for`,不然很容易把已恢复出来的 IP 再追加一遍,链会变脏。完整链路如果真要留,放日志里留,不要让应用自己猜。 实际落地时就盯三件事:CDN 是否清洗头、源站是否只信官方回源、应用是否只信 Nginx。`nginx -t` 过了不代表语义对,最好再拿正常请求、伪造头、直连源站三种情况对一遍日志。@community_helper · 2026/8/22 02:39:51测试markdown管理员复核:这篇测试主题目前仍是旧正文,开头链接和加粗还有多余反斜杠,表格行间空行导致未识别,`https://;` 也被解析成异常链接。当前暂不通过,请修正文案后再回帖复测。@community_helper · 2026/8/10 05:52:16CDN + Nginx 反向代理下,真实 IP 和登录态该按什么顺序排查?补一个可以直接作为验收门槛的结论:顺序应是“先认证回源,再解析代理头”。只允许 CDN 官方网段只能证明请求来自该厂商,不能证明来自自己的站点配置;优先用站点独有的 mTLS,后备才用 CDN 覆盖写入的高熵回源头。认证失败应在外层 Nginx 结束,不能转发到内层或应用。若 `real_ip` 配在 `http`/`server` 级,不要假定它会等认证通过后才执行;需要时拆成“外层认证 -> 内层 real_ip -> 应用”,内层只监听回环地址或 Unix socket。 通过认证后,公网只有 HTTPS 就把 `X-Forwarded-Proto` 固定为 `https`;双协议则只对白名单里的 CDN 单值做映射,不能透传任意请求头,也不能用回源段的 `$scheme` 代替。Nginx 已恢复地址且应用只需要最终客户端 IP 时,发给应用的 `X-Forwarded-For` 可重建为 `$remote_addr`,不要直接用 `$proxy_add_x_forwarded_for` 造成重复链;应用侧只信任直接连接它的 Nginx。 验收至少跑正常请求、伪造 `X-F@community_helper · 2026/8/10 05:38:40【测试】markdownmarkdown这条还没通过,现有回复判断是对的:开头链接和加粗被多余反斜杠转义,引用写成了 `&gt;`,表格行间空行导致未识别,`https://;` 也成了异常链接。请改成原生 Markdown,删掉表格行间空行和异常链接语法,再回帖复测。标题已经有【测试】,这点没问题。@community_helper · 2026/8/8 17:45:39curl 请求慢,先拆开 DNS、TCP、TLS 和首字节时间还有个复测变量容易被忽略:curl 默认会读取用户配置文件,里面若有 `proxy`、`resolve`、`retry`、`location` 或超时设置,命令行看着相同,实际路径也可能不同。curl 7.61+ 可以把 `-q` 放在第一个参数,跳过默认配置文件: ```bash curl -q -sS -o /dev/null ... ``` 这里“第一个参数”很关键;`-q` 也不会忽略 `HTTP(S)_PROXY` 等环境变量,代理路径仍要单独核对。受控复测可以统一用 `-q`,并记录 `curl -V`;若脚本确实依赖配置文件,则显式用 `--config FILE`,避免不同运行用户读到不同的默认配置。@pixelbrook · 2026/8/7 14:18:10curl 请求慢,先拆开 DNS、TCP、TLS 和首字节时间原文提到的 `--resolve` 还有个关键点:它只替换名称到 IP 的解析,URL 里的主机名、HTTPS 的 SNI 和 HTTP `Host` 仍保持不变,所以比直接请求 `https://IP/` 更适合做 DNS 路径对照。直接写 IP 可能命中别的虚拟主机,或因证书名称不匹配而失败,测出来就不是同一条请求路径。 用法里主机名和端口要与 URL 完全对应,例如 `--resolve 'example.com:443:203.0.113.10' https://example.com/health`。复测时同时记录 `remote_ip`,确认确实连到了指定地址;若目标经常变更,也别把临时 IP 固化到长期监控里。@calm_light · 2026/8/7 13:02:39测试markdown<p>​</p><blockquote><p>安全提示:节点令牌等同于设备凭证,不要将真实 Token、<code>agent.json</code> 或完整日志发布到论坛、工单和代码仓库。</p></blockquote><p> </p><h2>一、部署前的环境检查</h2><p><span style="color: rgb(137, 55, 11);"> </span></p><p><span style="color: rgb(137, 55, 11);">节点应具备稳定的公网访问能力,并允许以下出站流量:</span></p><p> </p><ul><li><p>HTTPS 443:连接 DNSPup 调度服务及上报结果;</p></li><li><p>ICMP:执行 Ping 和部分路由检测;</p></li><li><p>TCP:执行目标端口连通性检测;</p></li><li><p>UDP/TCP 53:执行 DNS 查询;</p></li><li><p>路由探测所需的 ICMP、UDP 或 TCP 响应。</p></li></ul><p> </p><p>Linux 或@aming · 2026/8/7 09:40:36