gpt4 book ai didi

apache - 如何将 REMOTE_ADDR 设置为 HTTP_X_REAL_IP?

转载 作者:行者123 更新时间:2023-12-04 19:32:10 26 4
gpt4 key购买 nike

我尝试了很多方法将 REMOTE_ADDR(显示我的服务器 IP)设置为 HTTP_X_REAL_IP(显示访问者的 IP)。

我将 cPanel 与 Apache + NGINX + Varnish 一起使用。

REMOTE_ADDR 使用 NGINX + Varnish 获取实际访问者 IP 的最佳方法是什么?

谢谢!

最佳答案

假设 Internet -> NGINX -> Varnish -> Apache,不确定您拥有不同层的顺序是什么?

但是在每一层中,您必须显式转发客户端 IP 以确保您将其获取到 apache 层。
请注意,我将使用标准化的 X-Forwarded-For header 而不是 HTTP_X_REAL_IP

对于 Nginx

set_real_ip_from 127.0.0.1;
real_ip_header X-Forwarded-For;

对于 Varnish
sub vcl_recv {
# Add a unique header containing the client address
if (req.http.x-forwarded-for) {
set req.http.X-Forwarded-For = req.http.X-Forwarded-For;
} else {
set req.http.X-Forwarded-For = client.ip;
}
# [...]
}

然后,您可以在 Apache 日志文件中检索 X-Forwarded-For header (包含 nginx 初始接收的原始客户端 IP)
%{X-Forwarded-For}i

关于apache - 如何将 REMOTE_ADDR 设置为 HTTP_X_REAL_IP?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27329499/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com