IIS的反向代理是通过ARR模块来完成的,ARR模块需要另外安装,而且只能通过Web PlatForm Installer安装。关于安装来源与步骤,帖子已有很多,不做描述。启用“Application Request Routing”功能以及简单设置URL Rewrite的步骤也不做描述,帖子很多,几乎是千篇一律的贴图,意义不大。在此只记录一些知识要点:

1、规则设置中的第一个步骤“匹配URL”,匹配来源仅仅是请求的完整URL中除去协议、主机头、端口号、querystring后剩下的那一部分:

比如,预计浏览器的请求地址为:http://szh-it-2e02d/test/KWF/Preview.html?ticket=b037ec8c-6579-4e27-be43-dfc3e821c2d2&flowID=1278355,那么仅仅是”test/KWF/Preview.html“这一段会用于匹配测试。所产生的捕获组“{R:0}”“{R:1}”,即为正则表达式执行时匹配成功的块,数目因正则的不同而不同,将作为变量,可在后面的配置中引用。

2、“条件”这一块设置中,条件输入必须是可用的变量,而可以使用的变量有哪些呢?微软的帮助文档url-rewrite-module-configuration-reference一文已经列举得很清楚:

  For an HTTP URL in this form: http(s)://<host>:<port>/<path>?<querystring>

  • The <path> is matched against the pattern of the rule.
  • The <querystring> is available in the server variable called QUERY_STRING and can be accessed by using a condition within a rule.
  • The <host> is available in the server variable HTTP_HOST and can be accessed by using a condition within a rule.
  • The <port> is available in the server variable SERVER_PORT and can be accessed by using a condition within a rule.
  • Server variables SERVER_PORT_SECURE and HTTPS can be used to determine if a secure connection was used. These server variables can be accessed by using a condition within a rule.
  • The server variable REQUEST_URI can be used to access the entire requested URL path, including the query string.

 每一条规则,可以设置零到若干个条件,只有满足步骤1中的URL模式匹配时,才会进入步骤2的“条件”验证,只有满足条件验证,才会进入后续的处理。如果设置了条件,那么也会产生一些变量值,形如{C:0}{C:1},可在后续中使用。

  界面上的条件设置只有按正则匹配这一种方式,实际上还有另外两种,但不支持可视化操作,需要手工编写配置文件。

  • IsFile – This match type is used to determine whether the input string contains a physical path to a file on a file system. If a condition input string is not specified, the URL Rewrite Module uses the physical path of the requested file as a default value for the condition input. This match type can be used only for distributed rules.
  • IsDirectory – This match type is used to determine whether the input string contains a physical path to a directory on a file system. If a condition input string is not specified, the URL Rewrite Module uses the physical path of the requested file as a default value for the condition input. This match type can be used only for distributed rules.

3、服务器变量。这一步可以自由添加一些变量值,也可以修改变量值,如:期望把端口从80转到81,可以做如下配置:

4、操作。这一步骤里首先要选择操作类型,如果是要做反向代理,那么应该选择“重写”这一种类型。重写的URL中,可以使用变量、常量来描述,比如:

5、很重要也是很有用的一点,使用反向代理时,客户端(浏览器)只需要能够访问反向代理服务器即可,与代理后的目标服务器是不产生直接访问的,代理充当了一个请求转发的作用。这一点已做验证。

转载于:https://www.cnblogs.com/sdlfx/p/8675079.html

使用IIS实现反向代理相关推荐

  1. 用IIS配置反向代理

    https://natapp.cn/ http://blog.csdn.net/g2321514568/article/details/12406755 目标服务器:targetServer 配置反向 ...

  2. Windows Server IIS+ARR反向代理(配置反向代理服务器)

    1.概念说明:反向代理 反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源.同时,用户不需要知道目标服务 ...

  3. IIS配置反向代理URL rewrite.dll加载失败

    更新 2022年10月9日17:58:33更新: 不要尝试了,以下方法只能转发静态资源,不能转发接口数据. 环境 Windows Server 2012R2 + IIS8.5 + URL Rewrit ...

  4. 【转】使用IIS做HTTP和WebSocket服务的反向代理

    反向代理对于服务器来说是非常实用的功能,可以将毫不相关的网站部署到同一个域名下,对于使用docker的人来说可以免去大量配置上的麻烦.它还能将HTTP流量转换成HTTPS,多个服务只需要一个证书就能解 ...

  5. iis7.5做反向代理配置方法图文教程 实现未备案域名海外转解析

    网络上好多开场的文章就说了好多的原理之类的这里我们直接开始配置. 不过也要简单说下win下配置反向代理只有IIS7以上的版本才可以实现这个功能,在这里我们使用WINDOWS2008 R2来做为测试 2 ...

  6. (转)IIS tomcat共用80端口解决一个IP多个域名:使用Nginx反向代理方式使两者兼容...

    from :http://www.cnblogs.com/wuyou/p/3455619.html 环境: windows server 2003,IIS6服务器,Tomcat7服务器 域名有几个: ...

  7. 让iis记录nginx反向代理真实ip

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

  8. 反向代理方式实现IIS与Tomcat整合

    文章目录 前言 一.环境准备 (1)确保本机的tomcat服务器下的项目能正常访问,输入http://localhost:8080 , 能正常访问到项目(项目放在tomcat的webapps文件夹下) ...

  9. IIS安装ARR(Application Request Router)反向代理插件

    最近接管了一个ASP的项目.前后台两个站点.每次后台站点上传图片,都是手动将图片拷贝到前台站点服务器的方式来实现的.美其名曰,图片审核,呵呵. 我的想法是在前端服务器上配置反向代理.避免每次都需要手动 ...

  10. iis 反向代理 应用程序_我如何反向工程字节并创建自己的字节Web应用程序

    iis 反向代理 应用程序 Byte, a new app from Vine cofounder Dom Hofmann, has been released on Android and iOS. ...

最新文章

  1. jquery.desktop.js 代码分析
  2. SSM 整合 2:Java EE 开发环境的搭建(JDK 配置、Tomcat 安装、IDE 安装、IDE 集成 Tomcat、Spring 及其组件的下载)
  3. OpenPBS 脚本
  4. [C# 设计模式] Iterator - 迭代器模式:我与一份奥利奥早餐的故事
  5. eclipse修改xml文件默认的打开方式为XML Editor
  6. Mujoco有限状态机以及轨迹追踪
  7. shell实现论坛灌水机
  8. 温故而知新,可以为师矣
  9. WPF渲染事件CompositionTarget.Rendering
  10. scala当中的文件操作、网络请求和隐式转换
  11. ORAN C平面 Section Type 0
  12. 三点定位算法--用于平面2D定位
  13. MySQL系列----创建函数
  14. 【数据库】Oracle基础命令
  15. 开源的抖音壁纸即刻取图出现“这张图不见了,联系客服解决吧”的解决办法
  16. java cursor属性_cursor的使用 怎么使用cursor 中的数据
  17. OTT与IPTV区别
  18. pyCharm 社区版搭建Django项目环境
  19. python3.x 基础五:模块
  20. Python中股票(对数)收益率的计算

热门文章

  1. 201521123026《Java程序设计》第2周学习总结
  2. HTTP Basic Authentication
  3. 转载--批量更新数据(性能优化)
  4. Solr 查询 转载(复制自网上,以备复习)
  5. Android开发16——获取网络资源之基础应用
  6. 请问mysql优化相关
  7. kubernetes session回话保持
  8. Java中的静态变量、静态方法问题
  9. PHP模板引擎Smarty内建函数section,sectionelse用法详解
  10. 继承中父类、子类构造器中的super. 和super()运用