2つの異なるサーバーでウェブサイトをホストする際に問題があります。私の会社は、Linuxでウェブサイトをホストしているクライアントのために、ASP.NET MVCでいくつかのページを開発しました。私たちは、Windowsホスト(1つのIPを持ち、他の多くのウェブサイトがホストされています)で、それらのいくつかのページをdll、画像、css、jsファイルとともにホストすることになっていますが、アドレスは彼らのドメインである必要があります...www.ClientDomainLinux.com/MyMvcController/MyPage
私は開発者ですが、これを実現するために IIS をどのように設定すればよいかわかりません... ホスティングを指すプロキシが設定されていますが、CSS、画像、JS ファイルはどれも読み込まれず、機能しません...
リンクが適切に機能するようにIISを設定する方法について助けが必要です。
どのようなアイデアでも大歓迎です。
ありがとう
答え1
2つの解決策が思い浮かびます。
1 つ目は、クライアントの Linux Web サイト上に ASP.NET を囲むシンプルなフレーム/iFrame です (www.yourwindowsserver.com/clients/clientXYZ/MyPage)。
これは簡単に設定できますが、クライアントの Web サイトにアクセスする技術に精通した訪問者にとっては、2 番目のサーバーにリダイレクトされていることがわかります。
2 番目の選択肢は、Linux Web サイトの一部をリバース プロキシとして構成することです。この方法の利点は、訪問者は www.ClientDomainLinux.com に接続するだけなので、シームレスに見えることです。www.ClientDomainLinux.com の Web サーバーは HTTP プロキシとして動作し、/MyMvcController/MyPage へのリクエストを受け取り、その受信リクエストを www.yourwindowsserver.com/clients/clientXYZ/MyPage への送信リクエストに変換し、応答を受信して、その応答を Web サイトの訪問者に再送信します。
Linux ウェブサーバーは通常、Apache ウェブサーバーを使用します。リバース プロキシ構成では、mod_proxy または mod_rewrite のいずれかが使用され、これは通常、管理者が構成する必要があるものです。
# somewhere in the main apache configuration file
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
# either in the virtual host definition for www.ClientDomainLinux.com or possibly .htaccess
ProxyPass /MyMvcController/MyPage http://www.yourwindowsserver.com/clients/clientXYZ/MyPage
ProxyPassReverse /MyMvcController/MyPage http://www.yourwindowsserver.com/clients/clientXYZ/MyPage
書き換えルールを使用した代替案は次のようになります。
# somewhere in the main apache configuration file
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule rewrite_module modules/mod_rewrite.so
# either in the virtual host definition for www.ClientDomainLinux.com or possibly .htaccess
RewriteRule ^/MyMvcController/MyPage(.*) http://otherhost/otherpath$1 [P]
Apache 2.4 の mod モジュールは、以下のとおりです。 Apache 2.4 の mod_proxy の最新バージョンは、http://www.apache.org/docs/mod/mod_proxy.html から入手できます。