首页 » 网站建设 » phpnginx获取ip技巧_Nginx 获取客户端真实 IP 的最终方法

phpnginx获取ip技巧_Nginx 获取客户端真实 IP 的最终方法

访客 2024-11-05 0

扫一扫用手机浏览

文章目录 [+]

在这篇条记中,我们将考试测验探求一种通用的方案,该方案可以让我们方便地定位到客户真个真实 IP 地址。

该条记将记录:在 Nginx 中,调试并获取客户端真实网络地址(IP Address)的干系方法。

phpnginx获取ip技巧_Nginx 获取客户端真实 IP 的最终方法

办理方案第一步、查看客户真个网络地址

客户真个真实网络地址是通过 HTTP 要求头通报的(除了 Proxy 协议,由于我们用的不多,以是这里未谈论该协议)

phpnginx获取ip技巧_Nginx 获取客户端真实 IP 的最终方法
(图片来自网络侵删)

以是,我们打印所有的与网络地址有关的变量及要求头(至少是我们知道的),这样我们就能知道各种地址信息:

log_format client_ip_address '[$time_local] Host="$http_host", ' 'Forwarded="$http_forwarded", ' 'X-Forwarded-For="$http_x_forwarded_for", ' 'X-Forwarded-Host="$http_x_forwarded_host", ' 'X-Forwarded-Proto="$http_x_forwarded_proto", ' 'X-REAL-IP="$http_x_real_ip", ' 'realip_remote_addr="$realip_remote_addr", ' 'remote_addr="$remote_addr", ' 'server_addr="$server_addr", ' 'upstream_addr="$upstream_addr", ' ;server {... access_log /var/log/nginx/client-ip-address.log client_ip_address; ...}

在这些地址中,如果没有涌现客户真个真实网络地址,那多数表示上游下来的要求存在问题。
须要修正上游做事,以通报客户端真实网络地址。

第二步、设置要求头,以通报真实地址

如果客户真个真实网络地址涌如今这些字段中,那么我们须要将该地址通报给下贱做事器。

这样要根据下贱做事器的哀求进行设置,比如下贱做事器从 X-Forwarded-For 中读取客户端真实网络地址,那我们这里的 Nginx 就要设置:

# proxy_set_header X-Forwarded-For <the variable containing real_ip_address># 比如,如下配置行proxy_set_header X-Forwarded-For $remote_addr;

把稳事变,在 RFC 中,没有 X-Real-IP 字段的描述,该字段可能是 Web Server 自定义的字段。
如果下贱做事器从 X-Real-IP 中读取客户端真实网络地址,那我们就要设置 X-Real-IP 字段。

干系链接

与代理有关的 HTTP 字段

参考文献

Alphabetical index of variables

相关文章