反向代理
反向代理,就是代理服务器代理了客户端,去和目标服务器进行交互。
github加速器就是正向代理
反向代理,代理服务器代理的是服务器,去和客户端交互。
反向代理,用户获取资源,访问的是代理服务器。
客户端上传资源,也是上传到代理服务器,由代理服务器判断上传给哪台服务器。
有了反向代理后,后端web服务器的资源会进行一个同步,比如上传到A服务器一个图片,资源会同步至B,C服务器。
比如打电话给10086,你只需要知道你要办理的业务就行了,具体后面哪个客户给你服务,你不需要知道,不同的人可以看做不同的服务器。
比如找房子,你只需要找到中介就行了,不需要知道具体哪个房东有房子。
反向代理的用途:
隐藏服务器真实IP
负载均衡
通过缓存加速访问资源
负载均衡
负载均衡:nginx做代理时,会把用户请求按照策略转达至某台服务器,让每个服务器都能被访问到,减轻服务器压力。
Ip hash算法,对客户端请求的ip进行hash操作,然后根据hash结果将同一个客户端ip的请求分发给同一台服务器进行处理,可以解决session不共享的问题。
web缓存
Nginx可以对不同的文件做不同的缓存处理,配置灵活,并且支持FastCGI_Cache,主要用于对FastCGI的动态程序进行缓存。配合着第三方的ngx_cache_purge,对制定的URL缓存内容可以的进行增删管理。
【超详细的Nginx教程,Java进阶从0到1学会Nginx反向代理与负载均衡】 https://www.bilibili.com/video/BV1Mv41137jv?p=2&share_source=copy_web&vd_source=1aab39b433529f6f488e61847b342350