小白求教源站屏蔽其他 ip 后设置显示访问者真实 IP 冲突咋解决

2023-09-18 21:53:07 +08:00
 zok2002

小白求教源站屏蔽其他 ip 后设置显示访问者真实 IP 冲突咋解决

比如 设置了 location / { try_files $uri $uri/ /index.php?$args; allow XXX; deny all; } 然后 nginx 里又设置了 set_real_ip_from 0.0.0.0/0; real_ip_header X-Forwarded-For; real_ip_recursive on;

就会导致网站 404 ,必须把前面的 allow XXX;deny all;删掉才行

1118 次点击
所在节点    NGINX
3 条回复
julyclyde
2023-09-18 22:00:01 +08:00
啥叫“设置显示”?
zok2002
2023-09-18 22:15:02 +08:00
要解决这个问题,可以尝试以下方法:

将 allow XXX; deny all; 放在 location 块中的 set_real_ip_from 和 real_ip_header 之前,确保阻止访问的规则在设置获取真实 IP 的规则之前生效。例如:
location / {
allow XXX;
deny all;

set_real_ip_from 0.0.0.0/0;
real_ip_header X-Forwarded-For;
real_ip_recursive on;

try_files $uri $uri/ /index.php?$args;
}
如果第一种方法不起作用,可以使用 if 指令来分别处理符合条件和不符合条件的请求。例如:
location / {
set_real_ip_from 0.0.0.0/0;
real_ip_header X-Forwarded-For;
real_ip_recursive on;

if ($remote_addr != X.X.X.X) {
return 403;
}

try_files $uri $uri/ /index.php?$args;
}
请注意,使用 if 指令可能会引起其他问题,因为它在一些情况下不会按预期工作。因此,最好使用第一种方法来解决问题。
zok2002
2023-09-19 09:17:23 +08:00
试了试 GPT 这个不行还是 404 啊

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/974997

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX