如何在 Linux 上的網域的 IIS 上託管頁面?

如何在 Linux 上的網域的 IIS 上託管頁面?

我在兩台不同的伺服器上託管網站時遇到問題。我的公司使用 ASP.NET MVC 為客戶開發了幾個頁面,他們的網站託管在 Linux 上。我們假設在我們的Windows 主機上託管這幾個頁面及其dll、映像、css 和js 檔案(它有1 個IP 和許多其他網站託管在其上),但地址應該是他們的網域...就像www.ClientDomainLinux.com/MyMvcController/MyPage

我是一名開發人員,我不知道應該如何設置 IIS 來實現此目的...他們設置了一個指向我們託管的代理,但沒有加載任何 css、圖像或 js 文件,並且它無法運行...

我需要一些有關如何設定 IIS 以便連結正常工作的協助,

任何形式的想法都值得讚賞。

謝謝

答案1

我想到了兩種解決方案。

第一個是客戶端的 Linux 網站上的一個簡單框架/iFrame,其中包含 ASP.NET www.yourwindowsserver.com/clients/clientXYZ/MyPage。

設定起來很簡單,但對於您客戶網站的更精通技術的訪客來說,他們會看到他們被重新導向到第二個伺服器。

第二個選項是將 Linux 網站的一部分配置為反向代理。這樣做的優點是,對於訪客來說,它會顯得無縫,因為他們只連接到 www.ClientDomainLinux.com。 www.ClientDomainLinux.com 上的網頁伺服器將充當HTTP 代理並接受/MyMvcController/MyPage 的請求,將該傳入請求轉換為對www.yourwindowsserver.com/clients/clientXYZ/MyPage 的傳出請求,接收回應並將傳出請求重新傳輸回覆網站訪客。

Linux Web 伺服器通常使用 Apache Web 伺服器。反向代理配置要么使用 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]

http://httpd.apache.org/docs/2.4/mod/mod_rewrite.html http://httpd.apache.org/docs/2.4/mod/mod_proxy.html

相關內容