小白求教源站屏蔽其他 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;删掉才行
1
julyclyde 2023-09-18 22:00:01 +08:00
啥叫“设置显示”?
|
2
zok2002 OP 要解决这个问题,可以尝试以下方法:
将 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 指令可能会引起其他问题,因为它在一些情况下不会按预期工作。因此,最好使用第一种方法来解决问题。 |
3
zok2002 OP 试了试 GPT 这个不行还是 404 啊
|