所以我有 Nginx 代理和一些在其后面运行的服务器。我需要知道真实用户的 IP 而不是代理,所以我使用 real_ip 模块。一切都按预期工作,但如果我配置 vhost 像 subdomain.domain.com 后端获取 Nginx 代理 IP。
这是我的 Nginx 配置示例
set_real_ip_from 192.168.2.0/24;
real_ip_header X-Forwarded-For;
real_ip_recursive on;
upstream srv1 { server 192.168.2.12:80; }
server {
listen 80;
server_name dev.somedomain.com;
location / {
proxy_pass http://srv1;
}
}
server {
listen 80;
server_name somedomain.com;
location / {
proxy_pass http://srv1;
}
}
因此,如果我转到 somedomain.com 后端接收真实 IP,这里没有问题。但对于 dev.somedomain.com 后端接收代理 IP!
这只是简化的示例,不同域和子域的情况相同......
我只是不明白这里出了什么问题……
答案1
好的,这似乎是我的错误,这个配置一切都很好,我需要在后端采取额外的步骤来完成我的任务,至于具体的例子,我需要在后端服务器(litespeed web 服务器)中设置选项“在标头中使用客户端 IP”我一定是意外禁用了它。