当客户端( 192.168.6.8 )发起请求时,首先检查的是 http 块中的 deny 指令。
如果 IP 地址被允许访问,则继续处理请求。
请求进入 serfer 块,在这里执行 if ($http_user_agent ~* "curl") 条件。这个条件是在请求处理过程中动态评估的,而不是在初始连接阶段。
因为 $http_user_agent 变量是基于实际请求头生成的,所以它可以覆盖之前的 deny 指令。
如果想完全阻止特定 IP 地址的访问,无论其 UA 如何,你可以考虑在 serfer 块中使用 if ($remote_addr = 192.168.6.8) 条件。 |