IIS上的反向代理

一直说在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,来自微软官方的解释是:

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.

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

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

这个程序点了,根据网络情况,过一会儿点下一步就自己全安装完了,Win7/2008自己安装2.0版本,Win8/8.1/2012安装3.0,两个版本功能差的不多,就是自己生产的XML配置文件的写法不太一样而已。

第二步,简要设置ARR:

安装完成后,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

  • 8
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 51脚本是一种脚本语言,可以用于编写批处理脚本和网络脚本等。而IIS(Internet Information Services)是一种由微软开发的Web服务器软件,用于托管和管理网站。 当我们需要在IIS中设置反向代理时,可以借助51脚本来进行配置。反向代理是一种网络通信方式,通过将客户端的请求转发给后端服务器,从而隐藏后端服务器的真实IP地址和具体实现细节。 要实现IIS反向代理功能,可以按照以下步骤使用51脚本进行配置: 1. 首先,打开IIS管理器,并找到对应的网站。 2. 在该网站上右键点击,选择“属性”或“编辑网站”。 3. 进入“属性”窗口后,找到“主目录”选项卡。 4. 在主目录选项卡中,点击“配置”按钮,进入应用程序配置窗口。 5. 在应用程序配置窗口中,点击“添加”按钮。 6. 在添加应用程序窗口中,将“执行/网关”设置为“51脚本”的路径。 7. 在“扩展”栏中填写要进行反向代理的网站的URL。 8. 在“执行目录”栏中填写51脚本的路径。 9. 完成配置后,点击“确定”保存设置。 通过以上步骤,我们成功地使用51脚本配置了IIS反向代理功能。这样,当客户端发送请求时,IIS会将请求转发给后端服务器,并将返回的响应发送给客户端,实现了隐藏后端服务器信息的效果。 ### 回答2: 51脚本是一种用于自动化运维任务的脚本语言,常用于网络服务器的配置和管理。IIS(Internet Information Services)是微软开发的用于托管Web应用程序的服务器软件。反向代理是指将客户端的请求转发给不同的服务器,并将服务器的响应返回给客户端。 在51脚本中,我们可以使用IIS的相关命令和配置选项来实现反向代理的功能。具体步骤如下: 1. 首先,我们需要确保已经安装了IIS服务器,并且已经配置了要代理的后端服务器。 2. 在51脚本中,我们可以使用IIS的PowerShell模块来进行相关操作。可以通过导入IIS模块来获得对IIS的访问权限。 3. 接下来,我们可以使用Set-WebConfigurationProperty命令来修改IIS的配置文件。通过修改反向代理的相关设置,我们可以将客户端的请求转发给指定的后端服务器。 4. 在设置反向代理之前,我们需要先创建一个反向代理规则。可以使用New-WebUrlRewriteProxy命令来创建规则,并指定要代理的网站、目标URL和其他相关的配置选项。 5. 完成反向代理规则的设置后,我们需要将该规则应用到相应的IIS站点中,可以使用Add-WebConfiguration命令将规则添加到IIS的配置文件中。 通过以上步骤,我们可以使用51脚本来配置IIS反向代理功能。这将使得客户端的请求可以被代理到指定的后端服务器,并将服务器的响应返回给客户端。这样可以实现服务器负载均衡、提高网站的可用性和性能等好处。 ### 回答3: IIS 反向代理是指将外部请求转发到内部服务器的过程。在 IIS 上配置反向代理可以实现多个服务器的负载均衡和高可用性。 要配置 IIS 反向代理,我们首先需要在 IIS 服务器上安装 Application Request Routing (ARR) 扩展。然后,在 IIS 管理器中,打开服务器节点并双击“Application Request Routing 缓存”选项。在右侧窗口中,点击“启用代理”复选框以启用 ARR。 接下来,我们需要创建一个反向代理规则。在 IIS 管理器中的“站点”节点上,选择要配置反向代理的网站。右键点击该网站,选择“URL 重写”选项,在右侧窗口中点击“添加规则”。 在新建的规则中,选择“反向代理”类型,并设置需要转发的目标服务器,包括服务器的 IP 地址和端口号。我们还可以设置其他选项,如负载均衡的算法和超时时间。 完成以上配置后,保存并应用规则,然后就可以开始使用反向代理了。当外部客户端发送请求到 IIS 服务器时,IIS 将会将请求转发到内部服务器,接收并响应请求的数据,再将响应返回给客户端。 通过 IIS 反向代理,我们可以实现多种功能,比如将单个域名映射到多个内部服务器上,实现负载均衡;或者设置故障转移,当某个内部服务器不可用时,将请求转发到其他可用的服务器上。 总的来说,IIS 反向代理可以提高网站的性能和可用性,通过将请求合理分配到内部服务器上,实现负载均衡和高可用性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值