Catat alamat IP asli saat menggunakan phoenix di nginx upstream

Saya memiliki aplikasi phoenix upstream, seperti itu:

upstream my_app {
    server localhost:3001;
}

server {
    root /var/www/my_app/priv/static;
    listen 80;

    location / {
        proxy_pass http://my_app;
    }
}

Saya ingin melacak alamat IP asli, tetapi saya tidak tahu bagaimana melakukannya melalui standar phoenix conn.remote_ip karena selalu mengembalikan 127.0.0.1 (karena nginx memproksi kueri ini ke phoenix). Bagaimana cara mengambil alamat IP asli?


person asiniy    schedule 29.08.2016    source sumber


Jawaban (1)


Ada x-forwarded-for header yang dirancang khusus untuk itu!

# nginx
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

# phoenix
conn.get_req_header(conn, "x-forwarded-for")
person asiniy    schedule 29.08.2016