บันทึกที่อยู่ IP จริงเกี่ยวกับการใช้ฟีนิกซ์ใน nginx อัปสตรีม

ฉันมีแอปฟีนิกซ์ที่อัปสตรีมเช่นนั้น:

upstream my_app {
    server localhost:3001;
}

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

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

ฉันต้องการติดตามที่อยู่ IP จริง แต่ฉันไม่รู้ว่าต้องทำอย่างไรผ่านฟีนิกซ์มาตรฐาน conn.remote_ip เพราะมันส่งคืน 127.0.0.1 เสมอ (เพราะ nginx พร็อกซีแบบสอบถามนี้ถึงฟีนิกซ์) ฉันจะดึงที่อยู่ IP จริงได้อย่างไร


person asiniy    schedule 29.08.2016    source แหล่งที่มา


คำตอบ (1)


มี x-forwarded-for ส่วนหัวที่ออกแบบมาเพื่อสิ่งนั้นโดยเฉพาะ!

# 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