1.正向代理:Forward Proxy
代理端是客户端,明确需要访问的服务端是谁
*正向代理是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标
(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。
客户端必须设置正向代理服务器,当然前提是要知道正向代理服务器的IP地址,还有代理程序的端口。
**作用
a,访问本无法访问的服务器B 最初用户A要访问服务器B需要经过R1和R2路由器这样一个路由节点,如果路由器R1或者路由器R2发生故障,那么就无法访问服务器B了。但是如果用户A让代理服务器Z去代替自己访问服务器B,由于代理服务器Z没有在路由器R1或R2节点中,而是通过其它的路由节点访问服务器B,那么用户A就可以得到服务器B的数据了。现实中的例子就是“FQ”。
b,加速访问服务器
c,Cache作用(Cache命中)
如果在用户A访问服务器B某数据J之前,已经有人通过代理服务器Z访问过服务器B上得数据J,那么代理服务器Z会把数据J保存一段时间,如果有人正好取该数据J,那么代理服务器Z不再访问服务器B,而把缓存的数据J直接发给用户A。这一技术在Cache中术语就叫Cache命中。
d.客户端访问授权
e.隐藏访问者的行踪
我们可以看出服务器B并不知道访问自己的实际是用户A,因为代理服务器Z代替用户A去直接与服务器B进行交互。如果代理服务器Z被用户A完全控制(或不完全控制),会惯以“肉鸡”术语称呼。
2.反向代理(reverse proxy)
代理端是服务端,不知道需要访问的服务端是谁
对于客户端而言它就像是原始服务器,并且客户端不需要进行任何特别的设置。客户端向反向代理的命名空间(name-space)中的内容发送普通请求,接着反向代理将判断向何处(原始服务器)转交请求,并将获得的内容返回给客户端,就像这些内容原本就是它自己的一样。
*作用
a,保护和隐藏原始资源服务器
b,负载均衡
当反向代理服务器不止一个的时候,我们甚至可以把它们做成集群,当更多的用户访问资源服务器B的时候,让不同的代理服务器Z(x)去应答不同的用户,然后发送不同用户需要的资源。
Nginx原理
1.用户在浏览器输入域名,先在本地hosts中找该域名对应的ip,如果没有.再去dns服务器找.
找到以后,根据该ip找到对应服务器,又因为访问地址没有带端口号.默认的是80端口.
而该ip对应的服务器的80端口正在被nginx监听,从而进入了nginx,
再nginx中再通过域名匹配找到对应的server_name,从而找到了对应反向代理的目标服务器地址,从而直接访问
2.在开发时,本地windows系统和linux系统配置nginx.conf问题(两者没关系)
当在hosts文件中,配置127.0.0.1 manager.taotao.com,则默认访问本地nginx系统;
当在hosts文件中,配置192.168.37.161(linuxIP)è manager.taotao.com,则默认访问linux中的nginx系统
3.透明代理
透明代理实践的例子就是时下很多公司使用的行为管理软件
上网行为管理软件顾名思义,就是管理上网行为的软件。它一般用于管理员工的上网行为,提高员工的工作效率,所以又被称为员工上网管理软件。它能帮助企业有选择的禁止、监控BT,炒股,聊天,MSN,管理QQ,监控邮件,带宽流量等,减少病毒,对员工的上网行为进行正确的引导。