Запишите реальный IP-адрес при использовании phoenix в восходящем потоке nginx.

У меня есть восходящее приложение phoenix, например:

upstream my_app {
    server localhost:3001;
}

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

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

Я хочу отслеживать реальный IP-адрес, но я не знаю, как это сделать с помощью стандартного phoenix conn.remote_ip, потому что он всегда возвращает 127.0.0.1 (потому что nginx проксирует этот запрос в phoenix). Как я могу получить реальный 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