在Debian上安装和配置Squid3缓存代理
在低端1GB 内存双核Debian Wheezy服务器上设置Squid缓存代理。
安装
安装非常简单:
# apt-get update && apt-get install squid3
设置和配置分区以存储缓存的数据(可选)
我们将使用专用的SSD进行缓存。
当Squid创建成千上万的大小文件时,我们将设置ReiserFS来处理该文件。
ReiserFS以处理小文件速度快,空间高效且稳定而著称。
尽管它的发展可能已经死了,但Btrfs仍在进行中。
ReiserFS
为ReiserFS文件系统安装用户级工具:
# apt-get install reiserfsprogs
在SSD上创建一个'/dev/sdb1'ReiserFS分区:
# mkfs.reiserfs -l squid_cache /dev/sdb1
创建一个Squid目录来存储缓存的文件:
# mkdir /var/spool/squid3-ssd
挂载分区:
# mount -o rw,noatime,notail /dev/sdb1 /var/spool/squid3-ssd/
noatime选项可防止更新i节点的访问时间,从而提高性能,而notail则可提高ReiserFS的性能。
# mount -l | grep sdb1 /dev/sdb1 on /var/spool/squid3-ssd type reiserfs (rw,noatime,notail) [squid_cache]
确保只有Squid可以读/写目录:
# chown proxy:proxy /var/spool/squid3-ssd # chmod 0750 /var/spool/squid3-ssd
将以下条目添加到'/etc/fstab'中:
/dev/sdb1 /var/spool/squid3-ssd reiserfs rw,noatime,notail 0 0
Squid配置
默认配置文件“ /etc/squid3/squid.conf”可能适合大多数安装。
我们调整了一些参数以提高优化程度:
acl LAN src 10.10.1.0/24 http_access allow LAN http_access deny all icp_access allow LAN icp_access deny all acl SSL_ports port 8081 8443 8834 acl Safe_ports port 8081 8443 8834 http_access deny to_localhost http_port 3128 cache_mem 128 MB maximum_object_size_in_memory 128 KB cache_replacement_policy heap GDSF cache_dir ufs /var/spool/squid3-ssd 15360 16 256 maximum_object_size 4 MB cache_swap_low 85 cache_swap_high 90 access_log /var/log/squid3/access.log squid half_closed_clients off cache_mgr Hyman@theitroad hosts_file /etc/hosts memory_pools off client_db off
/etc/squid3/squid.conf
首先备份配置文件:
# cp /etc/squid3/squid.conf /etc/squid3/squid.conf.$(date +%F)
允许从我们的局域网浏览:
acl LAN src 10.10.1.0/24 http_access allow LAN http_access deny all
仅允许来自局域网的ICP查询:
icp_access allow LAN icp_access deny all
其他安全的SSL端口(适用于Apache,Plesk,Nessus等):
acl SSL_ports port 8081 8443 8834 acl Safe_ports port 8081 8443 8834 # https
通过询问愚蠢的问题,无法访问Squid服务器上的任何服务:
http_access deny to_localhost
在默认端口上监听:
http_port 3128
另外内存的128MB 内存限制Squid可用作对象的内存缓存:
cache_mem 128 MB
不要从内存中超快地提供任何大于128KB的文件:
maximum_object_size_in_memory 128 KB
堆GDSF策略通过将较小的流行对象保留在缓存中来优化对象命中率,因此它更有机会获得命中。
cache_replacement_policy heap GDSF
缓存目录路径和存储大小为15GB:
cache_dir ufs /var/spool/squid3-ssd 15360 16 256
ufs是一直存在的古老的著名Squid存储格式。
缓存许多小文件,而不是几个大文件:
maximum_object_size 4 MB
当磁盘使用率达到87%(13GB)时,开始从缓存中清除内容。
积极清除90%(13.5GB)的旧缓存。
cache_swap_low 87 cache_swap_high 90
访问日志位置:
access_log /var/log/squid3/access.log squid
Squid不能区分半关闭的TCP连接和完全关闭的TCP连接之间的区别。
因此,将连接关闭发送给半开连接的客户端:
half_closed_clients off
设置本地缓存管理器的电子邮件地址,如果缓存死亡,它将接收邮件:
cache_mgr Hyman@theitroad
主机本地IP名称-地址关联数据库的位置:
hosts_file /etc/host
停止将内容保存在不再活跃使用的内存上:
memory_pools off
禁用收集每个客户端的统计信息:
client_db off
如果我们希望Squid从不尝试验证高速缓存的对象,请启用offline_mode。
offline_mode off
重启Squid
# service squid3 restart
配置iptables
# iptables -A INPUT -s 10.10.1.0/24 -p tcp --dport 3128 -j ACCEPT
在Chromium浏览器中使用Squid代理
$chromium --proxy-server=10.10.1.17:3128