2017-03-21 1 views
1

Ich habe zwei Ebenen App-Struktur (Nginx (Proxy) + Nodejs (App). Ende des Tages muss ich meine Client-IP (wer besuchte meine Website) in meiner Anwendung (NodeJS). Nun ist mein Client-IP, es wird die Protokollierung in meiner Nginx Protokolldatei (durch Aktivieren des unter confKennen Sie meine Client-IP in Nodejs App

proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 

Jetzt bekomme ich den Nginx-Server-IP in meinem App-Server, aber ich will nicht bekommen meine Nginx-Server-IP, anstelle dessen muss ich meine ursprüngliche Client-IP in meiner App erhalten

Dies ist der App-Code, den wir verwenden, um die Client-IP in App-Server zu bekommen.

request.headers['x-forwarded-for'] || request.info.remoteAddress 

Wo; Nodejs--> Happijs Rahmen

+1

Ich denke, das ist die Antwort Sie suchen: https: //stackoverflow.com/questions/30943112/get-ip-user-with-nginx-and-node#30943228 – Red8

Antwort

0

SOLUTION_SOURCE: get ip user with nginx and node,

Sie können NGINX konfigurieren die Client-IP-Adresse mit folgenden Einstellung zu übergeben:

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; 

}

Sie können dann mit der HTTP-Header X-Real-IP von req.headers ["X-Real-IP"].

1

Sie unter Code verwenden sollten:

var ip = req.headers['x-forwarded-for'] || req.connection.remoteAddress; 

Wenn Sie mit Hapi Rahmen dann sollten Sie unter Code verwenden:

var ip = request.headers['x-forwarded-for'] || request.info.remoteAddress;