反向代理是什么,不了解的,请自行百度。本人也是最近才研究这个主题,简单的来说,利用这项技术可以实现负载均衡,安全控制等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. jquery编辑插件tinyMCE的使用方法

    jquery编辑插件tinyMCE是一个非常容易集成到您系统的一个html编辑插件,它不像FckEditor那样需要针对专门的后台语言集成,tinyMCE既能做到轻松集成asp.net,php,jav ...

  2. each与list的用法(PHP学习)

    1.each的用法 先看API array each ( array &$array ) api里是这么描述的:each — 返回数组中当前的键/值对并将数组指针向前移动一步 我们先来看看返回 ...

  3. BASIC-24_蓝桥杯_龟兔赛跑预测

    示例代码: #include <stdio.h> int main(void){ int t1 = 0 , t2 = 0 , l1 = 0 , l2 = 0 ; int v1 = 0 , ...

  4. 通过shell进行数学计算

    对于基本运算,可以使用let, $(())和$[] 对于高级运算,使用expr和bc这两个工具 [hupeng@hupeng-vm shell]$n1= [hupeng@hupeng-vm shell ...

  5. python unittest单元测试框架-1

    Test Case.Test Suite.Test Runner.Test Fixture Test Case:单个测试用例 Test Suite:测试组合.可以把多个测试用例集合在一起执行. Tes ...

  6. Salesforce开源TransmogrifAI:用于结构化数据的端到端AutoML库

    AutoML 即通过自动化的机器学习实现人工智能模型的快速构建,它可以简化机器学习流程,方便更多人利用人工智能技术.近日,软件行业巨头 Salesforce 开源了其 AutoML 库 Transmo ...

  7. 转载 spring事务增强

    1.预备知识 aop概念请参考[http://www.iteye.com/topic/1122401]和[http://jinnianshilongnian.iteye.com/blog/141859 ...

  8. selenium+python自动化91-unittest多线程生成报告(BeautifulReport)

    前言 selenium多线程跑用例,这个前面一篇已经解决了,如何生成一个测试报告这个是难点,刚好在github上有个大神分享了BeautifulReport,完美的结合起来,就能生成报告了. 环境必备 ...

  9. C中运算符

    01,条件表达式, int a = (b>118)?118:a = b; printf("%d\n",a);//指如果b的值是118,则就设置a的值为118,不然就将b的值赋 ...

  10. 循环神经网络(RNN)

    1.    场景与应用 在循环神经网络可以用于文本生成.机器翻译还有看图描述等,在这些场景中很多都出现了RNN的身影. 2.    RNN的作用 传统的神经网络DNN或者CNN网络他们的输入和输出都是 ...