服务器代理那些事

Posted Martin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了服务器代理那些事相关的知识,希望对你有一定的参考价值。

1、定义

代理服务器英文全称是(Proxy Server),其功能就是代理网络用户去取得网络信息。形象的说:它是网络信息的中转站。代理服务器就好象一个大的Cache,这样就能显著提高浏览速度和效率。更重要的是:Proxy Server(代理服务器)是Internet链路级网关所提供的一种重要的安全功能,主要的功能有:[1] 
  1. 突破自身IP访问限制,访问国外站点。教育网、过去的169网等
  2. 网络用户可以通过代理访问国外网站。
  3. 访问一些单位或团体内部资源,如某大学FTP(前提是该代理地址在该资源 的允许访问范围之内),使用教育网内地址段免费代理服务器,就可以用于对教育网开放的各类FTP下载上传,以及各类资料查询共享等服务。
  4. 突破中国电信的IP封锁:中国电信用户有很多网站是被限制访问的,这种限制是人为的,不同Serve对地址的封锁是不同的。所以不能访问时可以换一个国外的代理服务器试试。
  5. 提高访问速度:通常代理服务器都设置一个较大的硬盘缓冲区,当有外界的信息通过时,同时也将其保存到缓冲区中,当其他用户再访问相同的信息时, 则直接由缓冲区中取出信息,传给用户,以提高访问速度。
  6. 隐藏真实IP:上网者也可以通过这种方法隐藏自己的IP,免受攻击
鉴于上述原因,代理服务器大多被用来连接INTERNET都是独立的大型
(国际互联网)和INTRANET(局域网)。在国内,所谓中国多媒体公众信息网和教育网都是独立的大型国家级局域网,是与国际互联网隔绝的。出于各种需要,某些集团或个人在两网之间开设了代理服务器,如果我们知道这些代理服务器的地址,就可以利用它到达国外网站。

2、正向代理

    类似一个跳板机,代理访问外部资源。

我是一个用户,我访问不了某网站,但是我能访问一个代理服务器,这个代理服务器呢,他能访问那个我不能访问的网站,于是我先连上代理服务器,告诉他我需要那个无法访问网站的内容,代理服务器去取回来,然后返回给我。从网站的角度,只在代理服务器来取内容的时候有一次记录,有时候并不知道是用户的请求,也隐藏了用户的资料,这取决于代理告不告诉网站。

  客户端必须设置正向代理服务器,当然前提是要知道正向代理服务器的IP地址,还有代理程序的端口。

总结来说:正向代理 是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。

正向代理的用途:

(1)访问原来无法访问的资源,如google

(2) 可以做缓存,加速访问资源

(3)对客户端访问授权,上网进行认证

(4)代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息

正向代理服务器举例:

1、iis
iis是微软开发的web服务器,需要收费,主要用来跑asp.net asp php,只能在windows下运行。

2、apache

apache是apache基金会的web服务器,免费,只支持静态页面,是html容器,应用范围广泛。

3、tomcat

tomcat是apache基金会的java服务器,主要用来跑jsp php python等。

4、Lighttpd 

Lighttpd 的名称暗示小,轻量级web服务器,占用内存小且cpu负荷低。Lighttpd 是服务于静态内容的不错选择。然而它更被公认为是用在Ruby 和 PHP 上。 

5、LiteSpeed 

LiteSpeed 一种被特别设计用作大型网站的商业web服务器。 其中一个优势就是它能直接读取Apache 的配置信息。并轻易将它现有的产品结合在一起来代替Apache 。这种服务器是轻量级的就如它的名字暗示出非常快。

6、Zeus web server 

Zeus web server 是一个高性能的web服务器。它曾被PC Magazine Editors’ Choice 授过奖并且eWeek/PC Magazine Innovation 也授予过它奖项。Zeus 是一种高度灵活的企业产品。  

3、反向代理

 初次接触方向代理的感觉是,客户端是无感知代理的存在的,反向代理对外都是透明的,访问者者并不知道自己访问的是一个代理。因为客户端不需要任何配置就可以访问。

 反向代理(Reverse Proxy)实际运行方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。

反向代理的作用:

(1)保证内网的安全,可以使用反向代理提供WAF功能,阻止web攻击大型网站,通常将反向代理作为公网访问地址,Web服务器是内网。

(2)负载均衡,通过反向代理服务器来优化网站的负载
反向代理服务器举例:
软件名称 性能 功能 过滤规则配置
Squid 不能多核是硬伤;
磁盘缓存容量有优势;
性能中等
多;
支持ACL角色控制;
支持ICP缓存协议
支持外部文件读取及热加载;
支持热启动
Varnish 多核支持;
内存缓存;
性能强
够用;
支持集群,但不支持ICP集群;
支持后端存活检查
不支持外部文件读取;
需要转义;
支持热启动
nginx 多核支持;
支持代理插件;
性能较强
多;
支持集群,但不支持ICP集群;
支持后端存活检查;
通过插件可以充当多角色服务器
不支持外部文件读取;
需要转义;
支持热启动
Apache TS 多核支持;
磁盘/内存缓存;
性能强
够用;
支持后端存活检查;
支持ICP协议,Cluster不稳定;
支持插件开发;
支持外部规则文件读取及热加载;
支持热启动
HAProxy 多核支持;
无缓存;
支持HTTP头部解析;
性能强
少,只专注HTTP头部解析和转发功能;
支持ACL角色控制;
支持后端存活检查
支持外部规则文件读取及热加载;
支持热启动;
支持会话粘滞和长连接

4、正向代理和反向代理区别

引用知乎:

 

正向代理中,proxy和client同属一个LAN,对server透明;
反向代理中,proxy和server同属一个LAN,对client透明。
实际上proxy在两种代理中做的事都是代为收发请求和响应,不过从结构上来看正好左右互换了下,所以把后出现的那种代理方式叫成了反向代理。
一个是代理(v)客户端,为客户端收发请求,使真实客户端对服务器不可见。
一个是代理(v)服务器,为服务器收发请求,使真实服务器对客户端不可见。
因为服务对象和自身角色不同,所以刚好是相反的。
(v代表动词)

参考资料:

http://z00w00.blog.51cto.com/515114/1031287

http://blog.csdn.net/m13666368773/article/details/8060481

https://www.cnblogs.com/camille666/p/nginx_iis_tomcat.html

http://blog.csdn.net/zhu_tianwei/article/details/19396527

友情提示

作者: mhq_martin

博客园地址: http://www.cnblogs.com/mhq-martin/

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

以上是关于服务器代理那些事的主要内容,如果未能解决你的问题,请参考以下文章

聊聊ngnix那些事

聊聊ngnix那些事

Mybatis那些事-拦截器(Plugin+Interceptor)

http那些事

(转 )Android那些高逼格的写法InvocationHandler与代理模式

nginx和SNI那些事