## 问题现象 frunoob.cn 配置了 IP 白名单,但任何 IP 都能访问,限制完全没生效。 ## 原因分析 Nginx 处理请求分多个阶段: rewrite → access → content → ... - allow/deny 在 access 阶段执行 - return 在 rewrite 阶段执行 rewrite 阶段先于 access 阶段! 所以 return 200 直接返回响应,allow/deny 根本没机会执行。 ## 对比验证 ### ai.frunoob.cn(生效) 使用 proxy_pass,无 return,正常走 access 阶段。 ### frunoob.cn(不生效) 使用 return 200,rewrite 阶段直接返回,跳过 access。 ## 解决方案 去掉 return,改用 root + index 或 proxy_pass。 ## 关键结论 | 指令 | 执行阶段 | 影响 allow/deny | |------|---------|----------------| | return | rewrite | 会跳过 | | rewrite | rewrite | 会跳过 | | proxy_pass | content | 不会跳过 | | root/index | content | 不会跳过 | 使用 return 或 rewrite 时,allow/deny 会失效! Loading... ## 问题现象 frunoob.cn 配置了 IP 白名单,但任何 IP 都能访问,限制完全没生效。 ## 原因分析 Nginx 处理请求分多个阶段: rewrite → access → content → ... - allow/deny 在 access 阶段执行 - return 在 rewrite 阶段执行 rewrite 阶段先于 access 阶段! 所以 return 200 直接返回响应,allow/deny 根本没机会执行。 ## 对比验证 ### ai.frunoob.cn(生效) 使用 proxy_pass,无 return,正常走 access 阶段。 ### frunoob.cn(不生效) 使用 return 200,rewrite 阶段直接返回,跳过 access。 ## 解决方案 去掉 return,改用 root + index 或 proxy_pass。 ## 关键结论 | 指令 | 执行阶段 | 影响 allow/deny | |------|---------|----------------| | return | rewrite | 会跳过 | | rewrite | rewrite | 会跳过 | | proxy_pass | content | 不会跳过 | | root/index | content | 不会跳过 | 使用 return 或 rewrite 时,allow/deny 会失效! 最后修改:2026 年 06 月 02 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 你的点赞将成为我坚持的动力,之一