apache ProxyPass:どう維持しましょうかという独自のIPアドレス
質問
しProxyPassへのリダイレクトすべての"r"ご要望にjboss港18080として
ProxyPreserveHost on
ProxyPass /r http://localhost:18080/redirectService/
ProxyPassReverse /r http://localhost:18080/redirectService/
でも、その原因のIPアドレスにはログインjbossのアクセスログとして"127.0.0.1".なんかを維持することができるので、元のIPからの依頼だったHttpServletRequest?またacesssからjbossサーブレットでもご要望doGet()
解決
あなたはから元のホストを取得することができます X-転送さ-についてのヘッダフィールドます。
他のヒント
その答えのJasonWです。でapache httpd2.4.6があり代替:mod_remoteip
るものすべてがなければならな:
- がインストールする必要がありますのmod_remoteipパッケージ
のモジュール:
LoadModule remoteip_module modules/mod_remoteip.so
以下のエントリを追加すごapache httpd config.必要がありますのでご注意くだ本 ない の設定のプロキシサーバーです。必要 追加の設定の代理対象httpdサーバー (サーバー裏のプロキシ):
RemoteIPHeader X-Forwarded-For
見 http://httpd.apache.org/docs/trunk/mod/mod_remoteip.html 詳しい情報のやります。
これは、よりエレガントに説明し、複数の可能な解決策を持っています。 http://kasunh.wordpress.com/2011 / 10/11 /保存-リモートiphost-一方、プロキシ/ の
ポストは、プロキシを含むセットアップ中ながらホスト/ IPを維持するために人気のある1つのずつあまり知られていないApacheモジュールを使用する方法について説明します。
、mod_rpafモジュールを使用してバックエンドサーバーにインストールして有効にして、モジュールの設定で、次のディレクティブを追加します。
オンRPAFenable
オンRPAFsethostname RPAFproxy_ips 127.0.0.1
(2017年編集)mod_rpafの現在位置: https://github.com/gnif/mod_rpaf
あなたがそうする能力を有している場合は、私が使用することをお勧めしますどちらか MOD-JKするまたは MOD-プロキシAJP には、ApacheからのJBossへの要求を渡します。 AJPプロトコルはHTTPプロキシ要求を使用し、特典として、JBossはApacheの元のクライアントから来ていないなどの要求が表示されますに比べてはるかに効率的です。
は、あなたのバーチャルホストに場所を追加する必要があります。
<Location />
ProxyPass http://localhost:1339/ retry=0
ProxyPassReverse http://localhost:1339/
ProxyPreserveHost On
ProxyErrorOverride Off
</Location>
IPアドレスは、以下のオプションを持って取得するには、
console.log(">>>", req.ip);// this works fine for me returned a valid ip address
console.log(">>>", req.headers['x-forwarded-for'] );// returned a valid IP address
console.log(">>>", req.headers['X-Real-IP'] ); // did not work returned undefined
console.log(">>>", req.connection.remoteAddress );// returned the loopback IP address
そこでいずれかの使用req.ipまたはreq.headers [ 'X-転送-ための']