正向代理和反向代理是forward/reverseproxy的意思,在代理功能上来讲,有一点不太一样。
举个例子:
你(client)要去租房,你找房屋中介(forword proxy)找房子,房屋中介找房屋的代理人(reverse proxy)要房子,而房屋的代理人是由户主(server)委托的。
正向代理:客户端访问网络时,指定某个代理服务器为你去获取内容;反向代理:服务器隐藏在代理服务器后面,让代理服务器在前线奋战的;而squid是一个 forword/reverse proxy,两个功能兼备,一般可以作为局域网的上网缓存,此时作为正向代理。
一般服务器会让squid作为前端,那就是充当反向代理,反向代理有很多软件都可以,比如nginx、lighttpd,但他们两个一般做不了正向代理。
正向代理
它是一个位于客户端和原始服务器(originserver)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求(客户端必须要进行一些特别的设置才能使用正向代理)并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。
正向代理的典型用途
为在防火墙内的局域网客户端提供访问Internet的途径;还可以使用缓冲特性(由mod_cache提供)减少网络使用率,使用ProxyRequests指令即可激活正向代理。因为正向代理允许客户端通过它访问任意网站并且隐藏客户端自身,因此你必须采取安全措施以确保仅为经过授权的客户端提供服务。反向代理
反向代理正好相反,对于客户端而言它就像是原始服务器,并且客户端不需要进行任何特别的设置。客户端向反向代理的名字空间(name-space)中的内容发送普通请求,接着反向代理将判断向何处(原始服务器)转交请求,并将获得的内容返回给客户端,就像这些内容原本就是它自己的一样。
简单地理解:客户端把反向代理服务器当作真正的后台服务器。反向代理服务接收到客户端的请求后,会向真正的后台服务器请求资源,并返回给客户端,而客户端无需感知这是不是一台反向代理服务器。
反向代理的典型用途
将防火墙后面的服务器提供给Internet用户访问;为后端的多台服务器提供负载平衡,或为后端较慢的服务器提供缓冲服务;启用高级URL策略和管理技术,从而使处于不同web服务器系统的web页面同时存在于同一个URL空间下。