2017-03-21 3 views
1

私は2つの層構造(Nginx(proxy)+ nodejs(app))を持っています。私のクライアントIP(私のサイトにアクセスした人) nodejs)。今私のクライアントIP、それは私が私のアプリサーバーでnginxのサーバーのIPを取得しています今すぐ下記のconfnodejsアプリでクライアントIPを知る

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

を可能にすることによって、(私のnginxのログファイルにログを取得しています、しかし、私は取得する必要はありません。私のNginxサーバのIPではなく、私のアプリで私の元のクライアントIPを取得する必要があります

これは私たちが アプリサーバーのクライアントIPを取得するために使用するアプリケーションコードです

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

ここで、 Nodejs--> Happijs枠組み

+1

私は、これはあなたが探している答えだと思います。 //stackoverflow.com/questions/30943112/get-ip-user-with-nginx-and-node#30943228 – Red8

答えて

0

SOLUTION_SOURCE:あなたが、その後使用することができます

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; 

}

get ip user with nginx and node

あなたは、次の設定を使用して、クライアントのIPアドレスを渡すようにnginxのを設定することができますreq.headers ["X-Real-IP"]からのHTTPヘッダーX-Real-IP

1

あなたはコードの下に使用する必要があります。

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

あなたはハピフレームワークを使用している場合、あなたは、コードの下に使用する必要があります。 ます。https:

var ip = request.headers['x-forwarded-for'] || request.info.remoteAddress; 
関連する問題