如何在 Linux 上的 IIS 上托管域的页面?

如何在 Linux 上的 IIS 上托管域的页面?

我在将网站托管在 2 个不同的服务器上时遇到了问题。我的公司使用 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 上的 Web 服务器将充当 HTTP 代理,并接收 /MyMvcController/MyPage 的请求,将该传入请求转换为对 www.yourwindowsserver.com/clients/clientXYZ/MyPage 的传出请求,接收回复并将该回复重新传输给网站访问者。

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]

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

相关内容