找回密码
 立即注册

QQ登录

只需一步,快速开始

LukeLiu
超级版主   /  发表于:2020-3-27 16:20  /   查看:7292  /  回复:0
本帖最后由 LukeLiu 于 2020-4-2 11:14 编辑

什么是反向代理?

如果格友们不是太清晰反向代理是的概念,不用担心,可以看看我发现的这篇文章,漫画图解了反向代理的概念:漫画图解什么是反向代理
大概理解了概念后,我们就落地对应的工具,本系列帖子选用Nginx作为主要的反向代理服务器。

为什么要给活字格加持反向代理呢?
我们为活字格加持反向代理,既要学习新的概念,还要完成一堆配置,好生辛苦,回头想想我们为什么要这样做呢?这么做的目的并不是简单为了酷炫,肯定是本着要解决实际问题出发。那么,这么做能解决哪些问题呢?
我们整理了如下场景的需求,在有了反向代理服务器的加持后,实现这些需求将变得简单。

安全相关

1. 安全审计

假如格友的公司有安全规定,规定业务服务器只可以在内网,不可以直接暴露在公网,以防止坏人恶意扫描端口实施攻击破坏。这种场景,要实现公网访问内网的活字格服务器,要借助公司允许的反向代理服务器,具体来讲,我们在公网环境借助反向代理服务器把我们的请求转发给内网特定IP与特定端口的活字格服务器,实现在公网环境安全的使用活字格,如图:
image.png417112120.png

2. 授权控制

借助反向代理服务器,帮助活字格应用实现访问控制,比如:
  • 一定程度的反爬虫
  • 限制访问者的国家或地理位置。
  • 过滤IP访问

这里举一个IP访问控制的栗子,咱们维护一套IP白名单,当反向代理服务器检测到请求的来源IP在白名单内时,请求正常流转给活字格服务器,当请求来源IP不在白名单内时,直接拒绝服务或者返回一个高冷的提示的静态页面。机灵的格友现在也许想到了,钉钉与微信的开放API的第一层安全限制,就是这么做的。还有,想到论坛有格友,之前发帖询问想在活字格里实现控制访问,现在是不是有新的思路啦?

3. 日志记录

反向代理服务器能够记录所有的Http请求日志,甚至还可以自定义日志的格式,后续这些日志的价值可以用来做数据挖掘,比如行为分析,性能分析等。

image.png986283569.png

性能相关

1. 负载均衡
当我们活字格应用面对高并发场景时,对于性能有了更高的要求,这时,可以在一台反向代理服务器后面平铺多台活字格服务器,这台反向代理服务器充当负载均衡的作用,把用户端的请求按照一定的策略转发给后面的活字格服务器,多台活字格服务器同时提供服务,以突破高并发场景下的性能瓶颈。
image.png824345092.png

希望各位格友能够深入思考,如果目前有遇到性能问题,到底是设计上的不足,还是真实需要做负载均衡。

2.静态资源缓存与CDN转发

当匹配到静态资源请求,可以配置反向代理服务器进行缓存或者转发请求到CDN服务器上,以加速用户的Web访问速度。

高可用保障相关

企业级应用,笃信的信条是“线上大于天”。
  • 故障转移。当一台活字格服务器所在的机器出现问题时,比如硬件故障,借助反向代理可以帮我们实现自动把流量转发给其他正常的活字格服务器。

image.png76739195.png
不停机升级。系统升级时,反向代理服务器先把流量全转给当前版本的活字格服务器,以保持业务系统正常提供服务。离场的服务器进行系统升级,操作人员有充足的时间与测试环境验证是否升级成功。这批服务器升级完成后,反向代理切换流量的流转方向,再去操作还没有升级的服务器。最终,我们升级了全部的服务器,过程里,业务服务没有任何中断。可以说,借助反向代理,让我们有能力做到“给奔跑的赛车换轮胎”。

实用性功能相关

1. 更简单的处理跨域

什么?!
还可以处理跨域。对的!你没有看错!
咱们在活字格服务器端开发后端的接口,有时纯粹是为了转发请求,以绕过浏览器的跨域限制。也正因为后端接口需要写代码实现,会经常发生这样一个喜闻乐道的现象:格友们本来从处理跨域问题出发,获知要写代码实现后端接口,其中会有一批小伙伴的问题流向,最终变成了“如何学习C#从入门到放弃”。这条不归路上 ,有熟悉的我跟着身后。
现在,想象这样一个需求,我们要在活字格里实现请求中国天气网的API或者天气数据,在没有反向代理服务器加持之前,别问,问就是写服务器端代码。
若加持了反向代理服务器,顶在活字格服务器的前面,之后,我们就可以这样实现:
image.png399135741.png
了解这样一个姿势后,如果再有需求只是想请求第三方API的数据,考虑借助反向代理服务器直接另辟新径,可以作为Plan B。

2. 更简单的实现HTTPS访问与HTTPS证书更新


反向代理服务器软件会有丰富的周边工具,比如可以很容易的实现自动更新短时限的免费HTTPS证书。这样,用户和反向代理服务器之间的通讯是基于https的,而反向代理服务器与活字格服务器之前的通讯是http协议的。对于用户来说是无感的,对于我们,可以说是低成本的实现了HTTPS服务。

总结

  • 了解反向代理基础的概念,原理,与具体的工具
  • 了解使用了反向代理技术能为活字格带来的价值




如果你已经开始思考一个问题——使用反向代理技术如何具体地对接活字格呢?
别急,我们一起来,继续看下一篇—— 一看就会,超有用活字格技能:八十,当活字格遇上反向代理——动手实现


0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部