Nginxredirect和地理定位

我有以下Nginx和GeoIP的问题,如果你能给我一些关于解决scheme的指针,会很好。

注意:我知道这可以在DNS端解决,但现在不可能,所以我正在寻找其他解决scheme。

问题
我的www.domain.com有一个1.1.1.1的IP地址,位于运行Nginx的亚马逊上,有一个像这样的redirect

location / { proxy_pass http://2.2.2.2 proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } 

在2.2.2.2上还有另一个使用geoIP的nginx。 问题是我的所有客户端似乎都来自1.1.1.1,因为第二个nginx由$remote_addr地理定位。

有什么方法可以捕获真正的客户端IP(1.1.1.1上的$ remote_addr),并将其作为不同的variables传递给2.2.2.2并在地理定位中使用它?

任何提示,评论或RTFM是值得欢迎的。 我会继续寻找一个解决scheme来试图回答这个问题。

谢谢。

在您的上游nginx上,使用RealIpModule从您从下游nginx发送的X-Forwarded-For标头中获取真实IP。

例如:

 server { set_real_ip_from 1.1.1.1; real_ip_header X-Forwarded-For;