サブディレクトリを持つApache VirtualHostプロキシ


13

現在、プライマリWebサーバーとしてIISサーバーがあります。代わりにApacheサーバーを実装していますが、IISサーバーにアクセスできるようにする必要があります。通常、Apache2はこのサーバーにサブドメインをプロキシできるため、これは簡単なことです。

ただし、問題はこれです。IISサーバーでdotnetChartingを使用しており、ライセンスはドメイン名に関連付けられています。dotnetChartingを機能させるには、別のライセンスを購入する必要があります。

私の質問は、Apache2はサブディレクトリをプロキシできますか?たとえば、「www.example.com/subdir」はIISサーバーを指すことができますか?それは不可能ではないように思えますが、これに対する解決策を見つけることができないようです。

回答:


19

承知しました。ただし、注意してください。多くのWebアプリケーションは、URLパスを変更するように設計されていません。アプリケーションは現在サブディレクトリで使用されていますか?

# You'll probably want this to maintain the host mapping in IIS
ProxyPreserveHost On
# Swap in the IP address or internal host name of your IIS server:
ProxyPass /subdir/ http://192.0.2.100/subdir/

または、URLパスを変更する場合は、リソース(CSS、javascript、画像)の絶対パスが原因で、多くのアプリケーションで問題が発生することに注意してください。

ProxyPass /subdir/ http://192.0.2.100/
ProxyPassReverse /subdir/ http://192.0.2.100/

パーフェクト!それが私のテスト環境でうまくいきました。現在、内部では、サーバーのIPアドレスを入力し、内部プロキシを使用してサーバーにアクセスできます。すべて(dotnetchartingを除く)が完全に機能するため、このメソッドでプロキシするときにアプリケーションが失敗することはありません。大変感謝いたします!
-SuperJer

1
(このように)/から末尾を削除する必要がありました。それ以外の場合、アプリケーションエラー(500)が発生します。スラッシュが含まれていれば()正しくプロキシされますが、それは私が探していた効果ではありません。subdir/subdirdomain.com/subdirdomain.com/subdir/
OneHoopyFrood

3

承知しました。

  1. mod_proxy mod_proxy_httpを有効にします
  2. Apache VHostで次の指示を設定します

    ProxyPass /subdir http://iis.server/.../
    ProxyPassReverse /subdir http://iis.server/.../
    

最後の「/」は必須です。

詳細情報:http : //httpd.apache.org/docs/2.2/mod/mod_proxy.html


0

最後の最後のスラッシュは必須ではありません。このようにセットアップしました

ProxyPass /dir http://exmpale.com/dir/ 

ProxyPassReverse /dir http://exmpale.com/dir/ 

そして、トップレベルは機能しましたが、メインレベルの下のサブディレクトリのeveyrythingは機能しませんでした。

私はこれをこれに変更し、すべてが機能しました。

誤報をありがとう!!!

ProxyPass /dir http://exmpale.com/dir

ProxyPassReverse /dir http://exmpale.com/dir

1
なぜ人々はこれを支持するのですか?それはまさに私が抱えていた問題でした。あなたがスラッシュで両方のURLを終了またはスラッシュなしで両方のURLを残して....それはサブディレクトリに来たとき、それは助けた私のために少なくともするか持っています。)
Jannik
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.