开发者社区> 科技小能手> 正文

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


本文转自 wdy198622 51CTO博客,原文链接:http://blog.51cto.com/weimouren/1765511


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
23588 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,云吞铺子总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系统盘、创建快照、配置安全组等操作如何登录ECS云服务器控制台? 1、先登录到阿里云ECS服务器控制台 2、点击顶部的“控制台” 3、通过左侧栏,切换到“云服务器ECS”即可,如下图所示 通过ECS控制台的远程连接来登录到云服务器 阿里云ECS云服务器自带远程连接功能,使用该功能可以登录到云服务器,简单且方便,如下图:点击“远程连接”,第一次连接会自动生成6位数字密码,输入密码即可登录到云服务器上。
31868 0
阿里云服务器ECS登录用户名是什么?系统不同默认账号也不同
阿里云服务器Windows系统默认用户名administrator,Linux镜像服务器用户名root
11135 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,大概有三种登录方式:
7578 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
13760 0
使用SSH远程登录阿里云ECS服务器
远程连接服务器以及配置环境
10651 0
23705
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载