Nginx

Nginx 重定向和地理定位

  • August 8, 2013

我在 Nginx 和 GeoIP 方面遇到了以下問題,如果你能給我一些關於解決方案的指示,那就太好了。

注意:我知道這可以在 DNS 端解決,但現在不可能,所以我正在尋找其他解決方案。

問題

我的 www.domain.com 有 1.1.1.1 IP 地址位於執行 Nginx 的亞馬遜中,重定向如下:

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)並將其作為不同的變數傳遞給 2.2.2.2 並將其用於地理定位?

歡迎任何提示、評論或 RTFM。我會繼續尋找解決方案來嘗試回答這個問題。

謝謝。

在您的上游 nginx 上,使用RealIpModuleX-Forwarded-For從您從下游 nginx 發送的標頭中獲取真實 IP 。

例如:

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

引用自:https://serverfault.com/questions/529646