返回 nginx 中的客户端 IP 和任何代理 IP

返回 nginx 中的客户端 IP 和任何代理 IP

几年前,我配置了一个 nginx 安装,当对 nginx 服务器上的特定位置发出请求时,在响应标头中返回客户端的标头(或至少是过去的标头)。这个想法是,我可以从客户端检索有关服务器将我的 IP 视为什么以及是否涉及任何代理(X-Forwarded-For)的详细信息。

不幸的是,我使用的 VPS 提供商由于磁盘故障丢失了我的 VPS,我找不到关于此事的记录!有人能告诉我我没有疯吗,这是可能的吗?!我似乎记得这相当简单。它可能涉及 Openresty,但我不确定。

我意识到用 PHP 或其他语言可以做这样的事情,但我的解决方案非常简单,我真的很想找到它。

提前致谢。

答案1

在您的服务器/位置/任何块中您喜欢的任何地方:

add_header X-Forwarded-List $http_x_forwarded_for;
add_header X-Remote-IP $remote_addr;

$http_whatever_lowercased_header您可以使用变量(破折号改为下划线)任意检查请求的标头,并将其简单地添加到响应标头中,以检查 X-Forwarded-For 内容,并$remote_addr获取传入请求的 IP(请参阅变量列表http://nginx.org/en/docs/http/ngx_http_core_module.html#variables以及如何add_header使用http://nginx.org/en/docs/http/ngx_http_headers_module.html#add_header。刚刚验证了我的网络服务器是否可以正常工作。

相关内容