国内代理服务器推荐(五大开源Web 代理服务器横评:Squid、Privoxy、Varnish、Polipo、Tinyproxy)

转发HTTP请求时,Web代理软件不会更改数据流。它们可以配置为透明代理,无需客户端配置。也可以放在网站前面作为反向代理;这样,缓存服务器可以为一个或多个web服务器提供无限的用户服务。

代理网站功能多样,用途广泛:从缓存页面、DNS等查询,到加速web服务器响应,减少带宽消耗。代理软件广泛应用于高流量的大型网站,如《纽约时报》和《卫报》,以及Twitter、脸书和维基百科等社交媒体网站。

页面缓存已经成为优化单位时间可以处理的数据量的重要机制。一个好的Web缓存还可以减少延迟,尽可能快地响应页面,让最终用户不会因为等待内容太久而失去耐心。他们还可以缓存经常访问的内容以节省带宽。如果需要降低服务器负载,提高网站内容的响应速度,缓存软件能带来的好处绝对值得探索。



为了深入探究Linux下可用的相关软件的质量,我列出了以下五个优秀的开源web代理工具。其中一些功能齐全且功能强大,而另一些可以在资源非常少的情况下运行。

鱿鱼

Squid是一个高性能、开源的代理缓存服务器和Web缓存进程,支持FTP、Internet Gopher、HTTPS、SSL等协议。它通过一个非阻塞I/O事件驱动的进程来处理所有IPV4或IPV6协议请求。

Squid由一个主服务程序Squid、一个DNS查询程序dnsserver、一些可选的请求重写和认证程序组件,以及一些管理和客户端工具组成。

Squid为开发web代理和内容服务网站应用程序提供了丰富的访问控制、认证和日志环境。

其特点包括:

  • Web代理:

  • 通过缓存减少访问时间和带宽使用

    将元数据和经常访问的对象缓存到内存中。

    缓存DNS查询

    支持非阻塞DNS查询

    已实现失败请求的失败缓存。

    Squid缓存可以建立在分层结构或网状结构中,以节省额外的带宽。

    通过广泛的访问控制实施网站访问策略。

    隐藏请求,例如禁用或修改客户端HTTP请求头的特定属性。

    反向代理

    限制

    支持SSL

    IPv6支持

    错误页面的本地化——Squid可以根据访问者的语言选项显示每个请求的本地化错误页面。

    (用于NTLM身份验证通过)-一种方案,允许Web服务器通过Web代理使用Microsoft NTLM安全身份验证,而不是HTTP标准身份验证。

    支持

    流动

    选择TOS/Diffserv值来标记本地命中。

    选择TOS/Diffserv值以标记对等命中。

    选择性地只标记同级或上级请求。

    允许对客户端的任何HTTP响应保留来自远程服务器的响应的TOS值。

    对于接收到的远程服务器的TOS值,在复制之前屏蔽指定的位,然后发送给客户端。

    SSL Bump(用于HTTPS滤波和适配)-中间Squid,在连接模式的SSL隧道中,使用配置的客户端和服务器端证书对流量进行解密和加密。

    支持自适应模块

    ICAP旁路和重试增强-通过完全旁路和动态链路由扩展ICAP,以处理多种自适应服务。

    支持冰冷的流协议-通常称为SHOUTcast多媒体流

    动态SSL证书生成

    支持ICAP协议(互联网内容适配协议)

    完整的请求日志记录

    匿名连接



    网址:www.squid-cache.org[1]

    发展:国家应用网络研究实验室(NLANR)和网络志愿者。

    授权:GNU GPL v2

    版本:4.0.1

    Privoxy

    Privoxy (Privacy Enhancing Proxy)是一款非缓存的Web代理软件,其自带的高级过滤功能可用于增强隐私保护、修改页面内容和HTTP头信息、访问控制以及删除广告和其他令人反感的互联网垃圾。Privoxy的配置非常灵活,可以完全定制,满足各种需求和喜好。它支持单机和多用户网络模式。

    Privoxy使用动作规则来处理浏览器和远程站点之间的数据流。

    其特点包括:

  • 高度可配置-您可以完全定制您的配置。

  • 广告拦截

    Cookie管理

    支持“连接:保持活动”。无论客户端配置如何,都可以保持传出的持久连接。

    IPv6支持

    ,它允许根据客户端和服务器的请求头进行处理。

    视为

    代理操作

    狡猾的

    过滤机制用于处理服务器和客户端的HTTP报头。

    可以与其他代理软件链接。

    它集成了基于浏览器的配置和控制工具,可以在线跟踪规则和过滤效果,可以远程开关机。

    页面过滤(文本替换、根据大小删除广告栏、隐藏“web-bugs”元素和HTML容错等。)

    的模块化配置使标准配置和用户配置能够存储在不同的文件中,以便在安装更新时不会覆盖用户的个性化设置。

    配置文件支持Perl兼容的正则表达式和更微妙、更灵活的配置语法。

    GIF动画

    绕过处理大量

    脚本(避免脚本重定向)

    大多数由代理生成的页面(如“受限访问”页面)可以由用户使用HTML模板进行定制。

    自动监控配置文件的修改并重新读取。

    大多数功能可以基于每个站点或每个URL进行控制。

    网址:www.privoxy.org[2]

    发展:费边凯尔,大卫·施密特,和许多其他贡献者。

    授权:GNU GPL v2

    版本:3.4.2

    清漆缓存

    国内代理服务器

    Varnish Cache是提高性能和灵活性的web加速器。其新颖的架构设计可以带来显著的性能提升。按照你的架构,一般可以加快300-1000倍的响应速度。Varnish将页面存储在内存中,这样web服务器就不需要重复创建同一个页面,只需要在页面发生变化后重新生成即可。页面内容直接从内存访问,比其他方法快。

    此外,Varnish可以大大提高响应网页的速度,在任何应用服务器上使用都可以大大提高网站访问速度。

    根据经验,Varnish Cache比较经济的配置是1-16GB内存+SSD固态盘。

    其特点包括:

  • 新颖的设计

  • VCL-一种非常灵活的配置语言。VCL配置会转换成C,然后编译、加载、运行,灵活高效。

    可以使用循环轮询和随机分配来平衡负载。在这两种方式中,后端服务器都可以设置权重。

    基于DNS、随机、哈希和客户端IP

    多个后端主机之间的负载平衡

    支持边缘侧包括,包括组装压缩的ESI片段。

    重度多线程并发

    URL重写

    单个Varnish可以缓存多个虚拟主机。

    日志数据存储在共享内存中。

    基本后端服务器运行状况检查基于

    优雅地处理后端服务器“挂起”

    命令行界面的管理控制台

    用内联C语言扩展清漆

    可以在与Apache相同的系统上使用

    一个系统可以运行多种清漆。

    支持HAProxy代理协议。在这个协议中,每一个接收到的TCP请求都会附带一小段http头信息,比如SSL termination,用来记录客户端的真实地址。

    冷热VCL州

    名为VMOD的Varnish模块可以提供插件扩展。

    用VMOD定义后端主机

    Gzip压缩和解压缩

    HTTP流的传递和获取

    神圣模式和优雅模式。使用Varnish作为负载均衡器,不稳定的后端服务器可以在神圣模式下被列入黑名单一段时间,以阻止它们继续提供流量服务。优雅模式允许Varnish在后端服务器状态良好时提供页面或其他内容的过期版本。

    实验性支持持久存储,不消除LRU缓存。



    网址:www.varnish-cache.org[3]

    开发:清漆软件

    授权:FreeBSD

    版本:4.1.0

    章鱼

    Polipo是一个开源的HTTP缓存代理,只需要很低的资源开销。

    它监视来自浏览器的网页请求,将它们转发给web服务器,然后将服务器的响应转发给浏览器。在此过程中,它可以优化和调整网络流量。本质上,Polipo类似于WWWOFFLE,但其实现技术更接近于Squid。

    Polipo最初的目标是成为一个兼容HTTP/1.1的代理。理论上,它可以运行在任何兼容HTTP/1.1或更早版本的网站上。

    其特点包括:

  • HTTP 1.1、IPv4 & ampIPv6、流量过滤和隐私增强

  • 如果远程服务器支持,将使用HTTP/1.1,而不管接收的请求是通过管道处理还是通过多个连接同时接收。

    下载中断时缓存开始部分,需要续费时使用。

    请求完成下载。

    将HTTP/1.0的客户端请求升级到HTTP/1.1,然后根据客户端支持的级别进行升级或降级后回复。

    完全支持IPv6(作用域(链接本地)地址除外)

    作为IPv4和IPv6网络的桥梁

    内容过滤

    能够使用

    减少延迟

    支持SOCKS 4和SOCKS 5协议

    代理HTTPS

    扮演透明代理的角色

    它可以与Privoxy或tor一起运行。

    网址:www.pps.univ-Paris-Diderot.fr/~ jch/software/pol IPO/[4]

    发展:Juliusz Chromboczek,克里斯托弗·戴维斯

    授权:麻省理工学院许可证

    版本号:1.1.1

    Tinyproxy

    Tinyproxy是一个轻量级的开源web代理守护进程,它的设计目标是快速和小型。它适用于需要完整的HTTP代理功能,但系统资源不足以运行大型代理的场景,如嵌入式部署。

    Tinyproxy对于小规模网络非常有用。在这种情况下,大型代理会使系统资源紧张或带来安全风险。Tinyproxy的一个关键特性是它的缓冲连接概念。实际上,Tinyproxy缓存了服务器的响应,然后根据客户端可以处理的最高速度进行响应。这个特性大大减少了网络延迟带来的问题。

    特点:

  • 易于修改

  • 隐藏模式-定义哪些HTTP头允许通过,哪些被阻止。

    支持HTTPS-Tinyproxy允许HTTPS连接通过connect方法转发,数据流量在任何情况下都不会被修改。

    远程监控——远程访问代理统计数据使您能够清楚地了解代理服务的当前繁忙状态。

    平均负载监控——根据配置,当服务器负载接近某个值时,新连接将被拒绝。

    访问控制-通过配置,只允许访问指定的子网或IP地址。

    安全——操作不需要额外授权,降低了系统受到威胁的可能性。

    基于URL的过滤-允许基于域和URL的黑名单和白名单。

    透明代理——配置为透明代理,因此客户端不需要任何配置。

    代理链——上游代理服务器用于流量出口,而不是将其直接转发到目标服务器,从而创建我们所说的代理链。

    隐私特性——限制允许从浏览器接收的来自HTTP服务器的数据(如cookies),限制允许通过的来自浏览器到HTTP服务器的数据(如版本信息)。

    低开销glibc的内存开销只有2MB,CPU负载根据并发连接数线性增加(取决于网络连接速度)。Tinyproxy可以在老机器上运行,不用担心性能问题。

    网址:banu.com/tinyproxy[5]

    发展:罗伯特詹姆斯凯斯和其他贡献者

    授权:GNU GPL v2

    版本:1.8.3

    译者:fw8899[6]校对:wxy[7]

    本文最初由LCTT[8]编译,Linux中国有幸推出。

    [1]:http://www.squid-cache.org/

    [2]:http://www.privoxy.org/

    [3]:https://www.varnish-cache.org/

    [4]:http://www . PPS . univ-Paris-Diderot . fr/% 7e jch/software/poli po/

    [5]:https://banu.com/tinyproxy/

    [6]:https://github.com/fw8899

    [7]:https://github.com/wxy

    [8]:https://github.com/LCTT/TranslateProject

    推荐文章

    身份3086816063564
    单击标题或输入文章ID直接转到文章。
    2002年程序员和Unix大神的台式机是什么样子的?
    编程精神错乱的十个征兆,你中枪了吗?
    每天工作四小时的程序员
    哪个文件系统最适合你的Linux系统?



    与朋友分享这篇文章是我们最好的赞赏!

    您可以还会对下面的文章感兴趣

    使用微信扫描二维码后

    点击右上角发送给好友