在Debian上安装和配置Squid3缓存代理

时间:2020-03-21 11:45:15  来源:igfitidea点击:

在低端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