$proxy_internal_connection

$proxy_internal_connection 指示到被代理服务器的连接是内部连接还是外部连接。 — NGINX Core (HTTP)

$proxy_internal_connection NGINX Core (HTTP)

说明

$proxy_internal_connection 变量在 NGINX 处理被代理请求并将请求转发到另一个上游服务器的上下文中被设置。它专门用于检查出站连接是否使用内部网络,这由该连接的套接字是否属于您在 NGINX 配置中设置的内部路由规则来决定。默认情况下,如果出站连接是内部连接,该变量的值为 '1'(真);如果是外部连接,则为 '0'(假)。 该变量在涉及多层代理或基于连接是内部还是外部而强制执行安全约束的配置场景中特别有用。例如,如果您定义了基于连接类型来限制访问或修改头的规则,该变量可以帮助微调这些行为。用户可以在其 NGINX 配置中设置特定配置,以便根据该变量的值做出不同响应,从而增强对被代理请求中连接处理的控制。 典型的使用场景可能包括增加日志记录、仅对内部连接修改请求头而不对外部连接修改,或应用特殊的安全措施以防止在面向公开的连接上暴露某些功能。日志随后可以根据该变量的状态指示不同的路由路径,从而便于故障排查和性能监控。

配置示例

location /proxy {
    proxy_pass http://backend;
    # Log whether the connection is internal or not
    access_log /var/log/nginx/internal_access.log;
    if ($proxy_internal_connection) {
        # Internal requests can have specific handling 
        set $internal 'true';
    }
}

子系统

http

可缓存

上下文

http, server, location, if

确保您的网络路由配置正确,因为配置错误可能导致该变量的值不正确。

该变量仅适用于发生代理的场景,因此在无关的上下文中使用不会产生任何结果。

在条件中仔细检查该值,因为对 $proxy_internal_connection 的评估取决于具体的服务器设置和连接规则。