2015-06-19 2 views
4

У меня проблема с nginx и node, потому что, когда я хочу получить ip пользователя с узлом, в моем localhost работает нормально (не использовать nginx), но на моем сервере не работает так, как должно , Я исследовал и вижу, что узел no является первым, который получает ip, является nginx и после nginx отправляет запрос узлу. то ip, который получает этот узел, - это мой сервер, а не ip пользователя. смотрите nignx сервер конфигурации:получить ip-пользователь с nginx и узлом

location/{ 
     proxy_pass https://fotogena.co:8000; <-nginx send req to node 
     proxy_http_version 1.1; 
     proxy_set_header Upgrade $http_upgrade; 
     proxy_set_header Connection "upgrade"; 
     proxy_set_header Host $host; 
     proxy_connect_timeout 1000; 
     proxy_send_timeout  1500; 
     proxy_read_timeout  2000; 
} 

я использую «req.connection.remoteAddress» для знать IP пользователя и консоль показать мне IP моего сервера. кто-нибудь знает, как решить эту проблему?

спасибо: D

----------- 2016-04-20 --------

я могу решить эту проблему, с этой линией на Nginx установка

proxy_set_header X-Real-IP $remote_addr; 

и файл node.js

req.headers['x-forwarded-for'] 
+0

Как насчет 'req.ip'? – Bwaxxlo

+0

Что вы используете для веб-сервера вашего узла? выразить? что-то другое? –

+0

http.createServer() – SonickSeven

ответ

7

Вы можете настроить NGINX передать IP-адрес клиента со следующей установкой:

location/{ 
     proxy_pass https://fotogena.co:8000; 
     proxy_http_version 1.1; 
     proxy_set_header Upgrade $http_upgrade; 
     proxy_set_header Connection "upgrade"; 
     proxy_set_header Host $host; 
     proxy_set_header X-Real-IP $remote_addr; # This line. 
     proxy_connect_timeout 1000; 
     proxy_send_timeout  1500; 
     proxy_read_timeout  2000; 
} 

Вы можете использовать HTTP заголовок X-Real-IP из req.headers["X-Real-IP"].

+0

, когда я добавляю строку «proxy_set_header X-Real-IP $ remote_addr;» и перезапустить nginx show FAIL – SonickSeven

+0

@SonickSeven Можете ли вы опубликовать Pastebin своего журнала? –

+1

@SonickSeven использовать 'nginx -t' для проверки конфигурации nginx. Это даст вам более полезное сообщение об ошибке –

Смежные вопросы