什么是代理?
代理可以理解为海外代购,代购东西就是代理。说白了就是替咱们办事的人。
那什么时候需要用到代理呢?比如在局域网内,只能访问网内的东西,网外是受限制的。想要访问外网就需要在外网和局域网之间架一个设备,需要通过这个设备来访问外网,这个设备就是代理,被成为代理服务器。它既可以是一个软件也可以是一个设备。
工作流程:
- 访问外网
- 代理收到请求,进行拦截
- 代理去帮着向外网请求
- 外网数据响应之后再传回给局域网
- 如果再次访问这个资源的话,代理服务器可以直接拿这个资源,这个时候就是代理服务器有个缓存的作用
在每个地区网络运营都会有个代理服务器,它主要用来做缓存。公司里边的代理一般是限制上网,或者检查访问的网络是否工作需要,也就是看你有没有摸鱼!
什么是反向代理?
反向代理就是把代理倒过来,它也在局域网内。只不过是让互联网向局域网内访问。反向代理可以转发请求。比如在一个机房内web服务器有很多个,一个服务器上有多个网站域名但是都绑定在同一个ip上,那么这个ip就是这个局域网的入口。TCP层面上通过ip来找到这个入口,在HTTP层面上是有域名的,然后反向代理拿到这个请求之后找到这个域名,看看域名所在的内网是对应的哪个机器。
反向代理的用途:
- 加密和SSL加速 -> 把加密配置在反向代理服务器上,分担压力
- 负债均衡 -> 如百度、淘宝流量很大,一台服务器承担不来,分摊流量给反向代理服务器。
- 缓存静态内容 -> 缓存脚本、CSS、图片
- 压缩 -> http头里的gzip 压缩可以放在反向代理
- 减速上传 -> 本质是流量控制
- 安全 -> 要先攻破了反向代理服务器,然后才能攻破后面的服务器
- 外网分布 -> 一台服务器上有两个web服务,端口肯定不一样,但是对外提供服务必须是80或者443端口,他们不能都设置成同一个端口。所以这时候需要用反向代理统一用80端口对外服务,流向不同网站的请求进行转发。