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

一直说在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

【转】IIS上的反向代理的更多相关文章

  1. iis上的反向代理

    阅读文章: IIS上的反向代理 ARR(Application Request Routing)

  2. Nginx和Apache服务器上配置反向代理

    在实际项目过程中,由于网站要用到一个在线编辑器(个性化的在线编辑软件),需要跨域进行通信!由于跨域通信较多,所以当时就想到在网站服务器上代理编辑软件的请求! 这就是“反向代理”的实际需求! 一.Ngi ...

  3. IIS配置实现反向代理(图文)

    需求: 网站在备案,本来的网站不符合要求,先反向到别的网站.原网站:test.com, 目标网站:target.com 设置反向代理的服务器一定是在原网站服务器上. 注意:iis应该是iis7及以上版 ...

  4. 服务器上nginx反向代理的配置

    Nginx不但是一款高性能的Web服务器,也是高性能的反向代理服务器.下面简单说说Nginx的反向代理功能. 反向代理是什么? 反向代理指以代理服务器来接受Internet上的连接请求,然后将请求转发 ...

  5. vue cli 解决跨域 线上 nginx 反向代理配置

    前后分离 axios 接 api 跨域问题如图: 解决办法: 1. npm start 本地开发环境解决: 在webpack配置文件 /config/index.js 里找到 proxyTable 开 ...

  6. IIS简单的反向代理设置

    下载IIS扩展 1.URL Rewrite 地址: https://www.iis.net/downloads/microsoft/url-rewrite 2.Application Request ...

  7. Nginx反向代理下IIS获取真实IP

    1. iis 如果放在反向代理后面,日志里的c-ip是反向代理服务器的ip,不是真正用户的ip,想要记录用户的ip要做两件事. 一.在反向代理设置X-Forwarded-For段,以下为nginx下的 ...

  8. IIS ARR(Application Request Route)与反向代理(Reverse Proxy)

    为何要用反向代理? 这里说说我的场景, 我在服务器上假设了SVN(Visual SVN)用的端口是:8080, 而我想通过输入svn.niusys.com就可以访问我的SVN服务器,也就是要通过80端 ...

  9. Nginx作为反向代理时传递客户端IP的设置方法

    因为nginx的优越性,现在越来越多的用户在生产环境中使用nginx作为前端,不管nginx在前端是做负载均衡还是只做简单的反向代理,都需要把日志转发到后端real server,以方便我们检查程序的 ...

随机推荐

  1. ArcGIS API for JavaScript 入门教程[2] 授人以渔

    这篇仍然不讲怎么做,但是我要告诉你如何获取资源. 目录:https://www.cnblogs.com/onsummer/p/9080204.html 转载注明出处,博客园/CSDN/B站:秋意正寒. ...

  2. 我和Python的Py交易》》》》》》数据类型

    Python里的变量 ---门牌 Python在使用变量之前无须定义它的类型,但是必须声明以及初始化该变量. Python中给变量赋值就是声明,初始化变量(也就是创建一个相应数据类型的对象,而那些数据 ...

  3. TF.learn学习

    官网地址:https://www.tensorflow.org/versions/r1.1/get_started/tflearn 1.代码例子 实现自定义的Estimator 使用DNNClassi ...

  4. 【JVM虚拟机】(8)--深入理解Class中--方法、属性表集合

    #[JVM虚拟机](8)--深入理解Class中--方法.属性表集合 之前有关class文件已经写了两篇博客: 1.[JVM虚拟机](5)---深入理解JVM-Class中常量池 2.[JVM虚拟机] ...

  5. 强化学习(十六) 深度确定性策略梯度(DDPG)

    在强化学习(十五) A3C中,我们讨论了使用多线程的方法来解决Actor-Critic难收敛的问题,今天我们不使用多线程,而是使用和DDQN类似的方法:即经验回放和双网络的方法来改进Actor-Cri ...

  6. openJDK知识整理及概念

    上周同事去听了阿里openJDK的讲座,收集整理了一下.随着Oracle 撒手,Java 8 官方支持时间持续到 2020 年 12 月:对商业用户(Commercial Users),2019 年 ...

  7. 正确分析结构使用正确的HTML标签。CSS样式写一起。

    在内容中 一行内容包括三张图片,每张图片下面有标题和具体介绍,那么可以使用: 分析和解决如下步骤: 1,一行三块,先向左浮动成为一行float:left. 2,把他们的宽度平分三份,33.3%.三份都 ...

  8. ArcGIS Engine 笔记-控件类型

    控件 MapControl Map         地图控件 PageLayouControl      布局地图控件 TOCControl                目录控件 ToolbarCo ...

  9. Storm入门(七)可靠性机制代码示例

    一.关联代码 使用maven,代码如下. pom.xml  参考 http://www.cnblogs.com/hd3013779515/p/6970551.html MessageTopology. ...

  10. ReactiveSwift源码解析(四) Signal中的静态属性静态方法以及面向协议扩展

    上篇博客我们聊了Signal的几种状态.Signal与Observer的关联方式以及Signal是如何向关联的Observer发送事件的.本篇博客继续上篇博客的内容,来聊一下Signal类中静态的ne ...