You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nginx配置中deny/allow规则在/ip路径下不生效问题求助

问题原因与解决办法

你的问题出在location /ip块中指令的执行顺序:return指令写在了allow/deny规则的前面,而Nginx处理location内的指令是自上而下执行的,return属于终止型指令——一旦执行到它,就会直接生成HTTP响应返回给客户端,后面的访问控制规则根本不会被触发执行,这就是非允许IP能正常访问/ip路径的原因。

修改后的配置

将allow/deny规则移到return指令之前,让Nginx先完成IP校验再返回内容:

server {
  listen 80;
  server_name snippets--v2.dev.x.mydomain.com;
  
  allow 220.123.123.123;
  deny all;
    
  location /ip { 
    allow 220.123.123.123;
    deny all;
    
    return 200 '{"code":"0", "type": "success", "ip": "${remote_addr}"}';
  }    
}

补充说明

你在server块已经配置了全局的allow/deny规则,如果/ip路径的访问控制需求和全局一致,完全可以去掉location块内的重复规则,让配置更简洁:

server {
  listen 80;
  server_name snippets--v2.dev.x.mydomain.com;
  
  allow 220.123.123.123;
  deny all;
    
  location /ip { 
    return 200 '{"code":"0", "type": "success", "ip": "${remote_addr}"}';
  }    
}

内容的提问来源于stack exchange,提问作者丶 Limeー来夢 丶

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 07:18:20