2016-12-16 2 views
0

リバースプロキシとしてnginxを設定しました。しかし、ghostは、常にnginxによって転送された要求から同じip 127.0.0.1を取得します。ゴーストはどのようにnginx(リバースプロキシ)から実際のIPを取得しますか?

nginxから実際のIPを取得するにはどうすればよいですか?

のnginxの私の設定は、ヘッダから最初のIPアドレスを取得しようとする必要があり、次のステートメント

proxy_set_header Host $http_host;  
proxy_set_header X-real-ip $remote_addr; 

答えて

1

が含まれています

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

、それは他の混乱しますので、それを直接req.connection.remoteAddressを上書きすることは推奨されませんあなたが協力してくれたプログラマーしかし、それは技術的に可能です。 remoteAddressは、あなたが直接それに値を割り当てることはできませんので、あなたがdefine your own getterに必要なゲッターである:

req.connection.__defineGetter__('remoteAddress', function() { 
    return req.headers['x-real-ip']; 
}); 
+0

ありがとうございます。今私はゴーストのソースコードを変更して、すべての場所で実際のIPを使用するようにしたいと考えています。 req.connection.remoteAddressに、リクエストオブジェクトが最初に生成された場所のreq.headers ['x-real-ip']の値で直接署名することはできますか?このようにして、req.connection.remoteAddressは実際のIPの値を持ち、ソースコード内で1箇所だけを変更する必要があります。 :) –

+0

@Allen私は答えを更新しました。 –

関連する問題