目标,使IIS具有类似与Nginx的功能,将指定域名的请求重定向到IIS内、IIS外、其他机器上的其他端口,并且实现https卸载功能

重点预告:

1.安装最新版urlrewrite(微软开发的)插件

2.安装最新版ARR插件(Application Request Routing

3.添加重定向规则

4.流量:外网==>IIS==>指定网站==》UrlRewrite==》ARR==》你的目标程序的url

如果只转发到IIS内网站,则不需要ARR。如果要转发到其他程序或机器,则必须要ARR

如果不需要https卸载可以直接在全局配置规则。

====================正文分割线====================

1.材料

IIS(Windows专业版自带,如果是server版系统,需要通过功能管理器安装(无需下载))

urlrewrite插件,https://www.iis.net/downloads/microsoft/url-rewrite

ARR插件(Application Request Routinghttps://www.iis.net/downloads/microsoft/application-request-routing。如果只转发到IIS内网站,则不需要ARR

上面两个插件均可以通过WebPlatformInstaller 搜索安装

2.安装插件

安装好以上两个插件,重启IIS管理器,然后点击当前主机,就会发现两个新增的图标了。如果没看到的话,重启IIS、重启

3.设置绑定

如果不需要https卸载(即外网https流量转发为http流量)可以跳过这步。

使用默认的Default Site或者新建一个网站。并设置绑定如下图

根据需求设置端口和ip。

其中主机名设置为*

为什么要设置为*呢,目标是将要所有流量接入该网站。然后通过ARR/Rewrite将指定的流量再转发出去。

如果你理解了这里的主机名的作用,那么也可以设置指定的一个或多个域名,例如 www.example.com。这样设置转发的时候不会影响其他网站,缺点(也是优点)是,只能接入设置了域名的流量。

注意:https需要先导入/创建一个自签名证书,并在添加https绑定的时候指定该证书。导入证书的图标在第一张图中(服务器证书/ServerCertificates)。

4.ARR设置(如果只转发到IIS内则不需要ARR)

5.添加转发规则。

这里要注意:

  • 规则有两个地方,一个是IIS管理器中单击主机名,一个是单击网站。二者的范围不言自明,一个是全部流量转发,一个是只转发流入指定网站的流量。
  • 要实现https卸载,则必须设置网站中的规则。

这里使用网站规则,因此需要先点击网站,然后双击打开UrlRwrite

添加一条空白规则

填上需要的内容

填好了,赶紧保存下。

6.测试

此时,启动网站,启动9000端口的程序。浏览器输入 https://a.example.com,如果在本地调试,需要在hosts中配置域名转向到本地才能测试哦。

如果使用自签名证书,可能会提示该网站不安全,因为证书的颁发人和目标人都是你自己,而不是第三方受信任的机构。可以把该证书下载下来,然后安装到 受信任的证书颁发机构中。再次打开即可

ARR中还有个功能比较有意思,叫反向代理抓发,可以实现对流入流量的抓包。

如果使用Fiddler来做反向代理监听上面的8889端口,可以参考http://docs.telerik.com/fiddler/configure-fiddler/tasks/usefiddlerasreverseproxy

也就是在 Fiddler Script中找到  OnBeforeRequest  这个函数,在函数中增加下面一句即可

if (oSession.host.toLowerCase() == "127.0.0.1:8889") oSession.host = "127.0.0.1:9000";//目标服务器监听在127.0.0.1:9000,此时可以在Fiddler中看到入站流量包的详细信息。

注意:开启反向代理之后,会在全局UrlRewrite中添加一条所有请求重写到上述代理的规则,如果只需要过滤指定的请求,可以编辑该规则添加条件。

IIS反向代理/Rewrite/https卸载配置的更多相关文章

  1. nginx 反向代理及 https 证书配置

    nginx 反向代理及 https 证书配置 author: yunqimg(ccxtcxx0) 1. 编译安装nginx 从官网下载 nginx源码, 并编译安装. ./configure --pr ...

  2. 一文教您如何通过 Docker 搭建反向代理 Ngnix,并配置 Https SSL 证书

    欢迎关注个人微信公众号: 小哈学Java, 每日推送 Java 领域干货文章,关注附送 100G 海量学习资源哟!! 个人网站: https://www.exception.site/docker/h ...

  3. IIS 反向代理到 Apache、Tomcat

    将请求的网址重写重定向到其它网址.当80端口被占用无法同时使用两个Web服务的解决方案,使得IIS和Apache Tomcat 共存 环境 WindowServer 2008 IIS7 Apache ...

  4. IIS反向代理解决Web前端跨域

    1.1 IIS7反向代理解决跨域问题IIS的版本必须是IIS7及其以上,否则没有反向代理功能:按照以下步骤来配置IIS,以实现反向代理: 1.2 配置步骤1. 下载安装ARR(Application ...

  5. IIS 反向代理 golang web开发

    一. beego 开发编译 bee run 后会编译成 exe文件 编译生成后发布文件结构为 cmd 运行 cd D:/run beegoDemo.exe run 默认配置端口 不能为 80 跟iis ...

  6. Nginx插件之openresty反向代理和日志滚动配置案例

    Nginx插件之openresty反向代理和日志滚动配置案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.openresty介绍 1>.Nginx介绍 Nginx是一款 ...

  7. Nginx反向代理实现负载均衡配置图解

    Nginx反向代理实现负载均衡配置图解 [导读] 负载均衡配置是超大型机器需要考虑的一些问题,同时也是数据安全的一种做法,下面我来介绍在nginx中反向代理 负载均衡配置图解,大家可参考本文章来操作. ...

  8. IIS反向代理配置教程(最终完整版本)

    IIS代理配置教程 插件下载:https://download.csdn.net/download/song_yan_/11996489 一.安装反向代理插件 1.rewrite插件安装 (1) 双击 ...

  9. docker 安装 wordpress,通过nginx反向代理,绑定域名,配置https

    假设docker已经安装好了,如果没有安装,可以照着 5分钟安装docker教程. 一. 下载镜像 默认下载最新版本,如果想指定对应版本,可以用冒号后加版本,像这样mysql:5.7: docker ...

随机推荐

  1. spark SQL学习(spark连接 mysql)

    spark连接mysql(打jar包方式) package wujiadong_sparkSQL import java.util.Properties import org.apache.spark ...

  2. 在服务器 部署 asp.net core 报502.5的错

    HTTP Error 502.5 - Process Failure 如果 IIS 该安装的都装好了的话,那就需要安装一个.net core sdk,链接如下: https://www.microso ...

  3. bootstrap-datetimepicker日期控件下载

    bootstrap-datetimepicker.js bootstrap-datetimepicker.zh-CN.js bootstrap-datetimepicker.min.css 下载网站: ...

  4. c++之迭代器失效

    1.首先从一到题目开始谈说起迭代器失效.有时我们很自然并且自信地 用下面方法删除vector元素: #include <iostream>#include <stdio.h># ...

  5. TCP_DB_中间件_数据打包格式

    ZC: 这里约定的是,C和S之间 传输的TCP数据包的格式 1.TCP数据包 打包格式 1.1.TCP包长度(int32) + TCP包序号(int32) + TCP包类型(int32) + TCP包 ...

  6. 【Python】“UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9”根因及解决方法

    背景 自动化测试调用HTMLTestRunner生成测试报告的时候,出现了编码错误,错误如题 原因 搜索了很多资料,得出的结论是python的str默认是ascii编码,和unicode编码冲突,就会 ...

  7. JavaScript设计模式与开发实践:惰性函数

    Web开发中,因为浏览器之间的差异实现差异,一些嗅探工作总是不可避免的,比如我们需要在各个浏览器中能够通用事件绑定函数addEvent //一般写法 //缺点:当他每次被调用的时候都都会执行里面的if ...

  8. findContours函数参数详解

    http://blog.csdn.net/dcrmg/article/details/51987348

  9. HTML子页面保存关闭并刷新父页面

    1.思路是子页面保存后,后台传递成功的js到前台. 2.js的原理是——子页面调用父页面的刷新 子页面 function Refresh() {            window.parent.Re ...

  10. [nodejs]解决mysql和连接池(pool)自动断开问题

    最近在做一个个人项目,数据库尝试使用了mongodb.sqlite和mysql.分享一下关于mysql的连接池用法.项目部署于appfog,项目中我使用连接池链接数据库,本地测试一切正常.上线以后,经 ...