什么是反向代理服务器
我们常会看到‘反向代理服务器’这个名词,例如常看到文章上说 nginx 是一个反向代理服务器、varnish 是一个反向代理服务器 …… 下面就了解下这个概念
含义
‘反向代理服务器’ 有两个概念,一是‘代理服务器’,二是‘反向’
‘代理服务器’比较好理解,例如需要访问某网站,不想或不能直接访问,例如网络的原因、隐私的原因等,我们就连接一个代理服务器,这样对于这个网站来说,访问他的用户是这个代理服务器,而不是我们自己
‘反向’的意思我们没有通过代理服务器访问网站,但网站却在自己服务器前面加了一个代理,我们输入网址发起请求后,请求先到了这个代理服务器,代理服务器再把请求转给网站服务器
作用
之所以会出现反向代理服务器,就是因为他的作用非常大,随着网站的壮大,就必然要使用反向代理服务器
主要有以下几种作用
(1)安全过滤
为了安全,不允许用户直接接触真实服务器,任何访问请求都要先到达反向代理服务器,反向代理服务器来进行验证、过滤等安全类操作,符合条件的请求才会被转发到真实服务器
例如最简单的场景:只有在IP白名单中的IP才能访问
(2)内容缓存
当访问量越来越大时,网站服务器对每个请求都需要进行处理,压力巨大,根据局部访问性原理,这么多请求中必然有很多是重复的,网站服务器做这些重复劳动很累
这时就需要反向代理服务器来分担一部分工作,反向代理服务器把一些常用的内容都缓存到自己身上,用户的请求先来到反向代理服务器,他看自己这有没有用户需要的内容,有就直接返回给用户,没有时才交给网站服务器来处理
这样就相当于网站服务器有了一个助理,帮他处理了很多重复性工作,减轻了压力
(3)负载均衡
当访问量越来越大时,一个网站服务器扛不住了,需要在添加N个服务器,那么当用户请求过来后,到底由那台服务器进行处理呢?
这时就需要在这N台服务器前面添加一个反向代理服务器,做为负载均衡器
用户请求先发到负载均衡器,他思考一下这个请求应该交给谁,想好后就转发过去,这样就让N台服务器均衡的处理请求了
你也许感兴趣的:
- 【外评】电脑从哪里获取时间?
- 【外评】为什么 Stack Overflow 正在消失?
- Android 全力押注 Rust,Linux 却在原地踏步?谷歌:用 Rust 重写固件太简单了!
- 【外评】哪些开源项目被广泛使用,但仅由少数人维护?
- 【外评】好的重构与不好的重构
- C 语言老将从中作梗,Rust for Linux 项目内讧升级!核心维护者愤然离职:不受尊重、热情被消耗光
- 【外评】代码审查反模式
- 我受够了维护 AI 生成的代码
- 【外评】Linux 桌面市场份额升至 4.45
- 【外评】作为全栈开发人员如何跟上 AI/ML 的发展?
你对本文的反应是: