贴张图吧,反向代理的工作流程。
没接触之前,觉得反向代理是一个很高级的东西。其实也只是新建一个空站点,配置一个配置文件就可以代理到你想要代理到的网站获取响应流等等。
目前,我做的是IIS7的配置。II6的网上还有很多文章可以去借鉴。
首先,先安装URL Rewrite 和 Application Request Routing 以下简称ARR。只转发到IIS内网站,不跨IIS,不跨服务器,则不需要安装ARR。一个URL Rewrite即可转发与接收。
URL Rewrite是走Web平台安装程序去下载的,也可以提前先把IISWeb平台安装程序下载下来,不提前下,你在安装URL Rewrite和ARR时,也会自动给你下载。下载地址:Web平台安装程序。
安装完成之后,重启IIS你会在应用程序主页看见ARR与URL Rewrite这两个小插件。
接下来就针对这两个插件进行一些设置
ARR的设置相对于较少,点开ARR打开Server Proxy Settings
随后把Enable proxy开关打开即可,即表明当前站点开启访问外部站点,可跨IIS,可跨服务器。
成功打开,这里将会有一个代理服务。
接下来就是配置URL Rewrite,这个需要针对于你具体的哪一个站点进行设置,ARR则针对于全局进行设置的。
URL Rewrite配置也比较简单,新建一个空站点。进行一些规则编写即可。我这里建立一个空站点,访问此网站,让他去请求博客园主页。
此时访问当前网站没有任何内容。
接下来针对于URL Rewrite做一些规则编写,使他去访问博客园。
点击当前网站在主页找到URL 重写,打开》添加规则》选择空白规则》编辑入站规则起一个名称,使用正则表达式模式使用 .* 就是与任意字符匹配。正则好的可以自定义各种各样的匹配规则。》操作重写URL中,写入你想要请求的网站地址。》应用即可
此时我们在浏览本地8001站点,他去请求的就是博客园的首页。
仔细一看,添加完规则之后。IISTestWeb站点下自动建立了一个Web配置文件,所以说此方式的反向代理,其实就是安装好插件之后配置一下web.config。
这个相当于是把我的 http://localhost:8001/ 的请求地址,替换成了我规则里填写的 ”https://www.cnblogs.com/{R:0}“ 地址。{R:0}意思就是后面匹配任意字符。
当然你还可以在条件中添加许多条件,来对请求的地址做一些限制等等操作。我正则不是很好,就不举例了。。。
这只是相对简单的一种代理方式,使用最多性能最好的还是Nginx的方向代理,它可以做的有许多集群,负载均衡等等操作。日后有空再去研究,感兴趣的可以去研究一下。