【转】IIS上的反向代理

http://blog.csdn.net/yuanguozhengjust/article/details/23576033nginx

一直说在IIS上作反向代理,因为沉迷在nginx一行指令完事的美好情景当中,因此IIS懒得折腾,今天终于下定决心在IIS上折腾一下反向代理,通过一夜的捣鼓,终于搞定!搞定之后发现其实太简单了有木有!!(网上教程很晕!)首先说一下,IIS6略古老,想作反向代理也基本没戏,因此我就用IIS7.5和IIS8.5说事吧!浏览器

 

神马是反向代理?指以代理服务器来接受Internet上的链接请求,而后将请求转发给内部网络上的服务器,并将从服务器上获得的结果返回给Internet上请求链接的客户端,此时代理服务器对外就表现为一个服务器。咱们能够经过反向代理实现负载平衡、突破防火墙限制等一些很是实用的Web服务器功能,目前反向代理无论在私有云仍是公有云的虚拟机上用的不少不少。服务器

 

第一步,下载安装ARR(Application Request Routing),http://www.iis.net/downloads/microsoft/application-request-routing网络

简要说下ARR,来自微软官方的解释是:app

IIS Application Request Routing (ARR) 3enables Web server administrators, hosting providers, and Content DeliveryNetworks (CDNs) to increase Web application scalability and reliability throughrule-based routing, client and host name affinity, load balancing of HTTPserver requests, and distributed disk caching. With ARR, administrators canoptimize resource utilization for application servers to reduce managementcosts for Web server farms and shared hosting environments.ide

(谷歌一下基本就知道意思)性能

也不知道为啥IIS都出到8.5了还不自带,每次还要下载,不过下载、安装过程很简单,网站

这个程序点了,根据网络状况,过一下子点下一步就本身全安装完了,Win7/2008本身安装2.0版本,Win8/8.1/2012安装3.0,两个版本功能差的很少,就是本身生产的XML配置文件的写法不太同样而已。.net

第二步,简要设置ARR:scala

安装完成后,IIS里会多出两个图标,分别是Application Request Routing和URL重写。2.0版本(也就是2008或者Win7系统)须要双击ApplicationRequest Routing之后,在右侧Server Proxy Settings里,将代理功能开启,而Win8之后的版本本身默认就开启了:

第三步,设置反向代理:

ARR基本设置好了之后,须要进入一个IIS上搭建好的网站进行URL重写配置,网上给的教程太很差懂了,反向代理能够说分为两种,一种是多域名绑定,一种是采用虚拟目录的形式,下面分别介绍。

1.      多域名绑定:

所谓多域名绑定,其实就是指一个或者多个域名(多个不一样域名或一个域名的多个A记录)都指向同一IP,而经过不一样的域名访问的效果还不一样,如何实现?就须要使用URL重写或者重定向,使用URL重写也就是反向代理的原理。当时图样,不懂反向代理,还在ASP.NET页面里写呢,后来改进在XML里添加……

具体操做以下:

①  打开IIS的URL重写

②  右键->添加规则,选择“入站规则”里的“空白规则”,其余项目忽略,乱点就等着配置失败吧,我但是深有体会!

里面的内容能够按照下图所示填写,“名称”随便写,而后就在匹配URL里填个模式,^(.*)表示处理全部格式的URL字符串

③  把下面的“条件”展开,点击右边的“添加”

④  “编辑条件”里面的项目能够按照下面的图所示的内容填写,“条件输入”填“{HTTP_HOST}”意思是请求的主机名,模式格式为:“^绑定的域名$”,好比我想让用户访问http://baidu.yuanguozheng.com时跳转到百度,也就是对百度作反向代理,就写成这样(^baidu.yuanguozheng.com$),前提是填的这个域名必须绑定在你的服务器IP上。

⑤  接下来填写操做,默认重写,不用变,只须要填写URL,后面跟上“{R:1}”意思是把请求的域名后面的参数也带过来,确认后,点击右上角的应用便可完成反向代理配置,而后打开浏览器输入网址便可看到想要的效果。

 

2.      虚拟目录形式:

虚拟目录形式就相似:http://test.com/doSomething这样的连接,有些网站采用了MVC模式,看起来像虚拟目录,其实否则,这样的URL重写,在入站规则上只须要改几个地方便可。

①  匹配URL中的模式须要加上你须要使用的相似虚拟目录的字符串,以下图,^和(.*)之间加上虚拟目录URL便可,如shop/,blog/等

②  条件,去掉二级域名,只保留根域名,其余不变

③  每每,这样配置完后能够正常访问网站,但网页连接资源,如CSS、JS、图片等等都有URL问题,因此要配置出站规则,但出站规则不支持动态内容压缩,因此源网站请关闭动态内容压缩功能。出站规则的添加相似入站规则,只是在那个窗口中选出站规则便可。

匹配请按图中所示的方式填写

④  而后添加条件,这时请将“条件输入”填写成“{URL}”,模式格式为。“^虚拟目录名/.*”

⑤  重写也按以下内容填写,意思是在资源的相对URL以前加上“/shop”这样的虚拟目录名,以便获取,可是若是是绝对路径IIS本身就忽略了。应用规则后便可。

 

大功告成!虽然很高兴!可是和nginx的server_name和location比起来,我想死的心都有了,nginx真心方便,只惋惜在Windows平台性能远不及*nix平台,IIS一向的便捷操做在这儿体现不出来了,但愿微软之后仍是好好作吧!

 

转载请注明出处:http://blog.csdn.net/yuanguozhengjust/article/details/23576033

相关文章
相关标签/搜索