web-dev-qa-db-ja.com

ApacheとIISを一緒に実行できるようにするためのISapiリライト

IISはポート80で実行されており、Apacheは現在ポート19049で実行されています。これで外部ポートが開いて80を超えるトラフィックが許可されますが、外部からApacheページにアクセスできるようにしたいと思います。そのポートを開くか、URLでポートを指定する必要があります。私が見つけた解決策は、ISAPI書き換えフィルターを設定することでした http://iirf.codeplex.com/ 。 www.mydomain.com/Apacheに移動すると、isapiフィルターは内部的に要求(/ Apacheであることが条件)を// localhost:19049ページに処理し、すべてのトラフィックを(明らかに他のすべてのサブパスがマップされた状態で)前後にルーティングします正しく)。

問題は、基本的な書き換えを機能させることはできますが、つまり、リクエストをpage1.htmからpage2.htmに書き換えたり、ページをpage1.htmからwww.google.comにリダイレクトしたりできることです。書き換えルールの問題は、リクエストを別のポートに送信することを許可せず、リダイレクトルールは事実上単なる301コードです(したがって、明らかに// localhost:19049は外部で機能しません)。

誰かがこれに対する本当の解決策を持っていますか、確かに単純なリクエストをルーティングするのはこれほど難しいことではありません。

1
Robo

ホストの外部で書き換える場合、例: http:// x / -> http:// x:999 / 、あなたはクライアントリダイレクトします。これは、クライアント側に表示されることを意味します。これを行うにはプロキシサーバーが必要です。 Squid、Varnish、mod_proxyを試してください。

私はそのフィルターを使用しません。しかし、それはあなたが必要とする解決策ではないと思います。リダイレクトや書き換えは必要ありません。リバースプロキシが必要です。 iisとApacheのソリューションがあります。 Apacheを保証できます mod_proxy

0
Igal Serban

IIRFには ProxyPass ディレクティブがあり、必要な処理を実行します。 IIRFのv2.0が必要です。

0
Cheeso