服务器代理那些事
h3 { font-size: 15px; color: rgba(0, 102, 204, 1); line-height: 1.5em }
p { font-size: 12px; text-indent: 2em; line-height: 1.5em }
#container { background-color: rgba(51, 255, 204, 1); width: 675px; height: 200px; margin: 10px auto 0; padding-right: 3px; border: 1px dotted rgba(102, 102, 102, 1); position: relative }
#leftContent { position: absolute; top: 2px; left: 4px }
#leftContent img { height: 192px; width: 200px; border: 1px solid rgba(204, 204, 204, 1); padding: 2px }
#rightContent { margin-left: 220px }
1、定义
-
突破自身IP访问限制,访问国外站点。教育网、过去的169网等
-
网络用户可以通过代理访问国外网站。
-
访问一些单位或团体内部资源,如某大学FTP(前提是该代理地址在该资源 的允许访问范围之内),使用教育网内地址段免费代理服务器,就可以用于对教育网开放的各类FTP下载上传,以及各类资料查询共享等服务。
-
提高访问速度:通常代理服务器都设置一个较大的硬盘缓冲区,当有外界的信息通过时,同时也将其保存到缓冲区中,当其他用户再访问相同的信息时, 则直接由缓冲区中取出信息,传给用户,以提高访问速度。
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服务器是内网。
软件名称 | 性能 | 功能 | 过滤规则配置 |
Squid | 不能多核是硬伤; 磁盘缓存容量有优势; 性能中等 |
多; 支持ACL角色控制; 支持ICP缓存协议 |
支持外部文件读取及热加载; 支持热启动 |
Varnish | 多核支持; 内存缓存; 性能强 |
够用; 支持集群,但不支持ICP集群; 支持后端存活检查 |
不支持外部文件读取; 需要转义; 支持热启动 |
Nginx | 多核支持; 支持代理插件; 性能较强 |
多; 支持集群,但不支持ICP集群; 支持后端存活检查; 通过插件可以充当多角色服务器 |
不支持外部文件读取; 需要转义; 支持热启动 |
Apache TS | 多核支持; 磁盘/内存缓存; 性能强 |
够用; 支持后端存活检查; 支持ICP协议,Cluster不稳定; 支持插件开发; |
支持外部规则文件读取及热加载; 支持热启动 |
HAProxy | 多核支持; 无缓存; 支持HTTP头部解析; 性能强 |
少,只专注HTTP头部解析和转发功能; 支持ACL角色控制; 支持后端存活检查 |
支持外部规则文件读取及热加载; 支持热启动; 支持会话粘滞和长连接 |
4、正向代理和反向代理区别
引用知乎:
反向代理中,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