反向代理是什么,不了解的,请自行百度。本人也是最近才研究这个主题,简单的来说,利用这项技术可以实现负载均衡,安全控制等web应用中重要的功能,对于web应用来说这是个很基础,也很重要的技术,值得开发者花点时间研究研究。

  一直以为windows平台中的技术都比较简单,当想在windows平台实现反向代理的时候才发现,可没那么容易。随便在百度里一搜,关于反 向代理的网页链接还不少,其中分为两大波,windows平台下和非windows平台下。非win平台下,本人没有重点关注,那些文章的大意都是讲很方 便,只要几行配置的代码。关于windows平台下的,本人细看了下,中文的文章基本没多大参考价值,就那么几篇,还都是抄来抄去,如果非要看中文,推荐 大家这篇文章:http://blog.csdn.net/yuanguozhengjust/article/details/23576033。这篇 也只能作为入门的入门。而且,如果简单的按照作者说的那样做,可能会出现问题,特别是匹配URL那一块,很多文章都使用正则表达式,建议对正则表达式不是 很熟悉的朋友慎用,推荐使用通配符,简单靠谱。注意一点,本人说的win平台下的反向代理是利用IIS+ARR组件实现的,ARR组件需要另外下载安装, 至于在哪里下载,怎么安装,相信读者自己可以解决,另外推荐使用IIS7.0以上版本,arr组件也尽量使用最新版的。

  确保IIS和ARR组件正确安装后,要实现反向代理,说白了就是一系列的配置,可以选择使用可视化界面配置或者手动修改配置文件。关于ARR的 配置推荐这篇文章:http://www.iis.net/learn/extensions/url-rewrite-module/url- rewrite-module-configuration-reference#Rewrite_action,虽然全是英文,但挺容易看懂的,而且很 通俗易懂,不愧是出自一个微软项目经理之手。此外关于ARR的其它很多问题都可以在这个站点下找到相关资料。

  下面我给出一个简单的步骤(亲测有效):

    

  目标:把图中上方的地址用下方的地址代理出去,下方的为本机地址,上方为本机可访问的局域网地址或公网地址,注意端口要一致。一般情况下,两台 服务器位于同一局域网中,其中的代理服务器被映射到一个外网的ip,即外网只能通过代理服务器访问局域网。另外要求,外网只能访问该url及其子代虚拟目 录,即使该页面上有对虚拟目录上级的链接,点击也将失效。本次演示,本地机器作为代理服务器,以在站点中配置为例(在server farms中配置类似)。

  1,安装好ARR组件后的IIS目录:

   

  2,创建一个站点(ProxyServer),物理路径随便映射一个:

  目录:

  

  站点对应的功能视图(安装完ARR,站点功能视图会多出一些选项,常用的就是”URL重写“):

  

  3,配置host文件(host文件为何物,相信不用我多说):

  

  4,双击URL重写,添加一个入站规则:

  匹配URL:

  

  操作:

  

  入站规则先配这么多,点击右侧的“应用”按钮,用代理服务器的地址(http://proxyserver:6080/arcgis/rest/services/TOCC/subway/MapServer)访问一下:

  

  5,样式链接代理问题:

  页面能出现,点击链接,可以进入子级,不能访问父级,对于访问的控制是ok的,但是细看,页面的样式很单调,用真实地址 (http://content.china-ccw.com:6080/arcgis/rest/services/TOCC/subway /MapServer)访问不是这样。在google浏览器中检查页面发现:

  

  原来是样式的链接没有代理出来。那么再定义一个入站规则试试看能不能把样式给代理出去:

  匹配url:

   

  操作:

  

  应用这个规则,重启一下站点,刷新代理地址(http://proxyserver:6080/arcgis/rest/services/TOCC/subway/MapServer):

  

  ok,样式出来了!

  

  至于在server farms中配置反向代理,用入站规则基本能搞定,感兴趣的童鞋可以继续研究,推荐多关注IIS的官方站点,至此,本次试验顺利完成,希望对初识ARR的同学有点帮助。

IIS中利用ARR实现反向代理的更多相关文章

  1. 利用nginx做反向代理解决前端跨域问题

    最近朋友再群里提了一个问题,他们公司给他提供了一个获取数据的接口,在浏览器访问这个接口能获取到json数据,但是放在项目里使用ajax就产生了跨域问题,一般这个需要提供接口的后台方面需要做跨域处理,但 ...

  2. 利用Nginx+Mono+Fastcgi代替IIS对Asp.Net进行反向代理

    Nginx的好处相信我不必多说了,它作为一个相当轻量级的开源Web 服务器以及反向代理服务器而深受欢迎.越来越多的公司已经对它产生兴趣,包括我们公司的许多部门,利用它进行负载均衡和资源管理,之前写过一 ...

  3. IIS 下 部署nodejs 使用反向代理

    目标服务器:targetServer 配置反向代理的服务器:reveseProxServer iis应该是iis7及以上版本,才可以. 1.确定最终访问的网址:比如www.baidu.com  .ww ...

  4. Linux系统中使用Nignx配置反向代理负载均衡

    目录 使用nginx实现动静分离的负载均衡集群 使用nginx实现负载均衡和动静分离 使用nginx实现动静分离的负载均衡集群 Nginx官网源码包下载链接:http://nginx.org/en/d ...

  5. Tomcat:利用Apache配置反向代理、负载均衡

    本篇主要介绍apache配置反向代理,介绍了两种情况:第一种是,只使用apache配置反向代理:第二种是,apache与应用服务器(tomcat)结合,配置反向代理,同时了配置了负载均衡. 准备工作 ...

  6. Net Core中 使用Middleware 实现反向代理

    有这样的一个需求,我们要拦截某些特定的请求,并将它们重新定向到另一台服务器中,然而客户端并不知情. 在NetCore中我们可以用中间件来实现, 首先创建项目: 我这里只有2.1 Version 的 添 ...

  7. 利用Nginx实现反向代理web服务器

    一.Nginx简介 Nginx是一个很强大的高性能Web服务器和反向代理服务器,它具有很多非常优越的特性: 可以高并发连接 内存消耗少 成本低廉 配置文件非常简单 支持Rewrite重写 内置的健康检 ...

  8. Linux中配置端口转发(反向代理)

    在conf.d目录下建一个文件, 以conf为结尾(如果没有conf.d目录,就自己新建一个) server { listen 80; server_name 127.0.0.1; #这个IP是你服务 ...

  9. 利用vue-cli设置反向代理解决跨域问题

    在config文件夹下面的index.js里,添加如下代码即可 proxyTable: { '/apis': { //将接口域名印射为/apis target: 'http://192.168.3.1 ...

随机推荐

  1. [转载]Linux下关于system调用

    曾经的曾经,被system()函数折磨过,之所以这样,是因为对system()函数了解不够深入.只是简单的知道用这个函数执行一个系统命令,这远远不够,它的返回值.它所执行命令的返回值以及命令执行失败原 ...

  2. [UE4]让AI跑起来

    让AI由静止状态变成跑步状态,做法跟玩家角色走路一样. 一.创建1D混合动画 二.在AI角色关联的动画蓝图中使用第一步创建的混合动画

  3. [UE4]事件处理(Handling Events)和委托(Delegate)代码示例(二)【C++】

    3. 创建带参数的委托 我们可以通过修改委托的签名来使其接受参数 比如我们需要接受一个参数的话,可以在 GameMode 中这样声明: DECLARE_DELEGATE_OneParam(FParam ...

  4. [UE4]引擎自身提供的无锁队列等无锁容器(TLockFreePointerList)

    常用的接口: TLockFreePointerListFIFO<T>:先进先出: TLockFreePointerListLIFO<T>:后进先出: TLockFreePoin ...

  5. Ubuntu下mysql的卸载重装

    注:该方法是彻底删除ubuntu下面的文件,然后重新安装,更新root密码,所以mysql原数据会被删掉,所以一定一定要记得备份!!!!!!!! 转自:http://blog.csdn.net/chu ...

  6. UVA-10115

    字符查找替换,WA了N次,一次只能替换一个,下一次find必须从第0个位置开始 import java.io.File; import java.io.FileNotFoundException; i ...

  7. distinct group by

    select num from test_test group by num; 比 select distinct(num) from test_test;  效率高 select count(dis ...

  8. MVC 4 Razor Design Sample Demo Project

    This is a demo project in MCV 4 razor design which encompases the general design of MVC pattern. The ...

  9. robot framework取出列表子元素

    取出嵌套列表变量的子元素 ${list}型列表: ${list} = [["A1", "first"], ["A2", "seco ...

  10. leetcode973

    public class POINT { public int X; public int Y; public int Z; } public class Solution { public int[ ...