Apache proxy_httpをipにリダイレクトし、ホスト名を設定します


16

うまくいけば、皆さんが私が抱えているプロキシの問題で私を助けることができます。

私がすでに持っているもの

* .proxy.domainから* .intern.domainにリクエストをプロキシするために、Apache HTTPリバースプロキシを設定しました。Apacheは、外部ネットワークから内部Webアプリケーションに到達する唯一の方法です。

例:

app.proxy.domain -> app.intern.domain
mail.proxy.domain -> mail.intern.domain

これはすべてうまく機能していますが、次の問題があります。

問題
次のリクエストをプロキシしたい:

app.proxy.domain -> app.internal.domain
app-dev.proxy.domain -> app-dev.internal.domain

これは問題ありませんが、残念ながらapp-devサーバーはappサーバーwebapplicationの正確なコピーを実行し、このwebapplicationはホスト名(app.intern.domain)にのみ応答します

だから私がする必要があるのは、次のプロキシです

app.proxy.domain -> app.internal.domain (10.0.1.1)
app-dev.proxy.domain -> app.internal.domain (10.0.1.2)

/ etc / hostsに「10.0.1.2 app.internal.domain」を追加することで2番目の方法を実行できますが、これはapp.proxy.domainがdev-serverに到達することも意味します。

app-dev.proxy.domainのvhost構成ファイル内でのみ/ etc / hostsエントリを設定するオプションを探しています。これにより、他のすべてのvhost configはapp.intern.domainにDNSを使用するだけです。

考え...

Apacheの設定を伝える方法はありますか

ProxyPass / http://10.0.1.2/

app.intern.domainをホスト名として送信しますか?

dev-servers webapplicationを編集してapp-devをリッスンすることは、正確なコピーであることが想定されているため(オプションではありません...)

ありがとう!

回答:


34

おそらくmod_headersをmod_proxyと組み合わせて使用​​できます。まだテストしていません。

したがって、app-dev vhostには次のものがあります。

RequestHeader set Host "app.internal.domain"

次に追加します:

ProxyPreserveHost On

2
ProxypreserveHost設定は、このトリックを完璧に実行しました。ありがとう!
一部のLinuxオタク14

3

Uい回避策は、/ etc / hostsを使用して(むしろ:乱用)、app.internal.domainをlocalhostにポイントし、アプリとapp-devごとに1つずつ、2つの追加ポートをリッスンするようにApacheを構成することです。リバースプロキシを2回:

Listen 80
Listen 127.0.0.1:8001
Listen 127.0.0.1:8001

<VirtualHost *:80>
   ServerName app.proxy.domain
   ProxyPass / http://app.internal.domain:8001
</VirtualHost>
<VirtualHost *:80>
   ServerName app-dev.proxy.domain
   ProxyPass / http://app.internal.domain:8002
</VirtualHost>
<VirtualHost 127.0.0.1:8001>
   ServerName app.internal.domain
   ProxyPreserveHost On
   ProxyPass / http://10.0.1.1/
</VirtualHost>
<VirtualHost 127.0.0.1:8002>
   ServerName app.internal.domain
   ProxyPreserveHost On
   ProxyPass / http://10.0.1.2/
</VirtualHost>

2

リバースプロキシの構成に追加(foe app-dev.proxy ..):

RequestHeader edit Host ^app-dev.proxy.domain app.proxy.domain

事前にmod_headersを有効にする必要があります。

a2enmod headers

内部サーバー10.0.1.2には

ServerName app.proxy.domain
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.