提醒:本页面将不再更新、维护或者支持,文章、评论所叙述内容存在时效性,涉及技术细节或者软件使用方面不保证能够完全有效可操作,请谨慎参考!

Ziproxy是转发,非缓存,压缩HTTP代理服务器。其可以压缩图像转换到低质量JPEG文件或JPEG 2000和压缩( gzip或) HTML和其他文字样的数据,同时还可以提供 HTML/CSS/JS 的优化,主动的主机名称解析,透明代理等功能。

之前我将Raspberry Pi(树莓派)配置了Squid3缓存代理 ,然后注意到了Ziproxy这款软件,因为Ziproxy没有缓存功能,所以考虑将Ziproxy和Squid3配合起来实现压缩兼缓存的上网加速功能,首先要考虑将Ziproxy放在Squid3之前还是之后,当然这两种不同的放置方法可能有不同的效果,鉴于部署的便捷性考虑,我将Ziproxy放置在Squid之前,也就是 Internet - Ziproxy - Squid3 - Client 。假设你已经安装好Squid3并配置好防火墙,接下来我将简单介绍一下Ziproxy的安装部署过程。

1. 通过apt-get安装Ziproxy:

sudo apt-get install ziproxy

2. 修改 ziproxy.conf 配置Ziproxy:

sudo nano /etc/ziproxy/ziproxy.conf

分别找到以下选项并修改如下:

Port = 8080
Address = "127.0.0.1"
TransparentProxy = false
ConventionalProxy = true
UseContentLength = false
ImageQuality = {30,25,25,20}

3. 修改 squid.conf 配置squid3:

sudo nano /etc/squid3/squid.conf
acl Safe_ports port 80
acl Safe_ports port 8080   # 添加这行

http_port 3128

cache_peer 127.0.0.1 parent 8080 7 no-query  # 添加这行
never_direct allow all  # 添加这行

4. 重启Ziproxy和Squid3:

sudo service ziproxy restart
sudo service squid3 restart

到这里我们就配置完成了,实际图像压缩还是有效果的,但是我发现两个问题,一是图像压缩略耗费CPU资源,树莓派明显有点吃力,这样导致图片显示延迟;二是配置场景不对,这种压缩是为了节约带宽资源从而实现在低带宽网络环境中传输数据的,我的树莓派和电脑是局域网直连接,不存在低带宽的问题,这个功能纯属多余。

还有一点需要注意的是,如果squid3的配置写成:

cache_peer localhost parent 8080 7 no-query

127.0.0.1 被写成了 localhost ,在我的树莓派上会显示如下错误:

错误
您所请求的网址(URL)无法获取
------------------------------------------------------
当尝试读取下面的网址(URL)时:
发生了下列的错误:
Unable to forward this request at this time. 
目前无法将您的请求进行转送操作 
This request could not be forwarded to the origin server or to any parent caches. The most likely cause for this error is that:
The cache administrator does not allow this cache to make direct connections to origin servers, and 
All configured parent caches are currently unreachable.
您的请求无法被转送到原始网络服务器或其他的上层缓存服务器,发生这个问题最可能的原因是:
缓存服务器管理员不允许本服务器与原始网络服务器直接连结,而 
所有本服务器指定的上层缓存服务器都暂时无法连结。

写成 127.0.0.1 就没有这个问题了,具体原因未知。

参考文档: