IIS中利用ARR实现反向代理
反向代理是什么,不了解的,请自行百度。本人也是最近才研究这个主题,简单的来说,利用这项技术可以实现负载均衡,安全控制等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实现反向代理的更多相关文章
- 利用nginx做反向代理解决前端跨域问题
最近朋友再群里提了一个问题,他们公司给他提供了一个获取数据的接口,在浏览器访问这个接口能获取到json数据,但是放在项目里使用ajax就产生了跨域问题,一般这个需要提供接口的后台方面需要做跨域处理,但 ...
- 利用Nginx+Mono+Fastcgi代替IIS对Asp.Net进行反向代理
Nginx的好处相信我不必多说了,它作为一个相当轻量级的开源Web 服务器以及反向代理服务器而深受欢迎.越来越多的公司已经对它产生兴趣,包括我们公司的许多部门,利用它进行负载均衡和资源管理,之前写过一 ...
- IIS 下 部署nodejs 使用反向代理
目标服务器:targetServer 配置反向代理的服务器:reveseProxServer iis应该是iis7及以上版本,才可以. 1.确定最终访问的网址:比如www.baidu.com .ww ...
- Linux系统中使用Nignx配置反向代理负载均衡
目录 使用nginx实现动静分离的负载均衡集群 使用nginx实现负载均衡和动静分离 使用nginx实现动静分离的负载均衡集群 Nginx官网源码包下载链接:http://nginx.org/en/d ...
- Tomcat:利用Apache配置反向代理、负载均衡
本篇主要介绍apache配置反向代理,介绍了两种情况:第一种是,只使用apache配置反向代理:第二种是,apache与应用服务器(tomcat)结合,配置反向代理,同时了配置了负载均衡. 准备工作 ...
- Net Core中 使用Middleware 实现反向代理
有这样的一个需求,我们要拦截某些特定的请求,并将它们重新定向到另一台服务器中,然而客户端并不知情. 在NetCore中我们可以用中间件来实现, 首先创建项目: 我这里只有2.1 Version 的 添 ...
- 利用Nginx实现反向代理web服务器
一.Nginx简介 Nginx是一个很强大的高性能Web服务器和反向代理服务器,它具有很多非常优越的特性: 可以高并发连接 内存消耗少 成本低廉 配置文件非常简单 支持Rewrite重写 内置的健康检 ...
- Linux中配置端口转发(反向代理)
在conf.d目录下建一个文件, 以conf为结尾(如果没有conf.d目录,就自己新建一个) server { listen 80; server_name 127.0.0.1; #这个IP是你服务 ...
- 利用vue-cli设置反向代理解决跨域问题
在config文件夹下面的index.js里,添加如下代码即可 proxyTable: { '/apis': { //将接口域名印射为/apis target: 'http://192.168.3.1 ...
随机推荐
- 解决“Replace wireless configuration ”默认被选上的问题
方法一 1.打开 /home/tingpan/openwrt/barrier_breaker/feeds/luci/modules/admin-full/luasrc/model/cbi/admin_ ...
- 织梦ask标签的调用
EDE 问答首页调用标签 标签名称: ask 功能说明:问答调用标签 适用范围:全局使用 基本语法: {dede:ask row='6' qtype='new' tid='0' titlelen='2 ...
- 10个CSS+HOVER 的创意按钮
CSS hover 样式很简单,但是想创造出有意思.实用.有创意性的特效是很考验设计师的创意能力,所以设计达人每隔一段时间都会分享一些与鼠标点击.悬停的相关特效,以便大家获得更好的创造灵感. 今天我们 ...
- vs2015 去除 git 源代码 绑定,改成向tfs添加源码管理
除了下文的方法是将源码管理从git改成tfs之外,还要做以下几步即可 向tfs添加源码 打开源码管理(管理连接),双击打开你要向其中添加的tfs连接 选中该解决方案,右键 将解决方案添加到源码管理 嵌 ...
- Real FFT
[文/告别年代 Email:byeyear@hotmail.com] FFT算法是针对复信号的,而现实场景中很多时候时域是实信号,此时有两种办法加快FFT的速度. 1. 使用一个N点的复FFT同时 ...
- 【Spring-AOP-学习笔记-6】@AfterThrowing增强处理简单示例
项目结构 业务代码 @Component("hello") public class HelloImpl implements Hello { // 定义一个简单方法,模拟 ...
- springMVC学习(4)-商品修改(RequestMapping解释、controller返回值)
一.需求: 操作流程: 1.进入商品查询列表页面 2.点击修改,进入商品修改页面,页面中显示了要修改的商品(从数据库查询) 3.在商品修改页面,修改商品信息,修改后,点击提交 代码: ItemsMap ...
- mysql存储过程的参数名不要跟字段名一样 (血淋淋的代价)
如题,将会导致的结果就是参数的值将不会是你传入的值,而是变成每条记录的那个字段的值. 这样的后果,是灰常严重的.比如执行删除操作,它能把整个表的记录全删了. 这个是我的血淋淋的代价啊. 死坑如下,勿跳 ...
- Python 常用PEP8规范
目录 目录 代码布局 缩进 最大行宽 空行 模块导入 字符串 表达式和语句中的空格 注释 命名规则 编程建议 代码布局 缩进 每级缩进用4个空格. 括号中使用垂直隐式缩进或使用悬挂缩进. EXAMPL ...
- javascript继承之原型链(一)
function Father() { this.fatherValue = "爸爸"; } Father.prototype.getFatherValue = function ...