Squid代理服务

Squid代理服务配置命令

安装软件

1
yum install -y squid

创建cache目录

1
2
3
4
5
mkdir   /cache
chmod 777 /cache
chown squid:squid /cache


修改配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Vim /etc/squid/squid.conf
56: http_access allow all
#允许所有可以访问
59: http_port 192.168.1.254:8080
#改端口
62: cache_dir ufs /var/spool/squid 10240 16 256
#缓存目录
dns_nameservers IP
#DNS服务器
cache_mem 512 MB
#高速缓存
cache_log /var/logsquid/access.log
#缓存日志
cache_access_log /var/log/squid/access.log
#缓存访问日志
cache_store_log
#网页缓存日志
cache_effective_user
#设置squid的拥有者
cache_effect_group
#设置squid所属组
visible_hostname 192.168.65.10
#设置squid可见主机名
cache_mgr root@local.com
#设置管理员E-mail地址
redirect_children
#重定向器池进程数

初始化及重启服务

1
2
3
4
5
6
squid -Z				
#初始化在 squid.conf 里配置的 cache 目录
systemctl start squid
#启动服务
systemctl enable squid
#设置开机自启

Squid用户认证

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
auth_param  basic program    /usr/lib64/squid/basic_ncsa_auth    /etc/squid/passwd  
#指定认证程序以及账户文件
#注:/squid/squid_user (账户存储位置)

auth_param basic children 5
#认证程序进程数

auth_param basic realm CangLuan Squid
#客户端在使用代理是,输入密码时弹出的提示框中的描述文字

Auth_param basic credentialsttl 5 hours
#用户名是否需要匹配大小

http_access allow cangluan
#允许cangluan中的成员访问

acl ncsa_users proxy_auth REQUIRED
#所有成功鉴权的用户都归于ncsa_users组。

Acl badfile urlpath_regex -I /.mp3$ /.flv$
#禁止访问.mp3 .flv扩展名后缀的资源

http_access deny badfile

htpasswd -c /etc/squid/passwords test
#给用户创建密码

ACL控制语句

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
acl mylan src 192.168.1.0/24 192.168.4.0/24
#客户机网段

acl worktime time MTWHF 08:30-17:30
#周一至周五的工作时间段

acl to_host dst 127.0.0.0/8
#目标地址

acl mc20 maxconn 20
#最大并发连接20

acl blackURL url_regex -i ^rtsp:// ^ emo://
#以rtsp://等开头的URL

acl fileURL urlpath_regex -i .mp3$ .mp4$
#以.mp3、.mp4结尾的URL路径

配置说明

一、基本配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
http_port 192.168.1.1:3128                  
#设置监听地址和端口,如果只是端口则表示监听所有地址。

visible_hostname ren.com
#可发现的主机名,给代理服务器设置一个名字。

access_log /var/log/squid/access.log
#访问日志存放位置。

coredump_dir /var/spool/squid
#设置一个内核转存目录,当Squid挂掉的时候,会将内存中的数据写到该目录下,默认为/var/spool/squid。

cache_mgr squiderror@test.com
#设置一个邮箱,当用户使用代理服务器中出现问题,会在错误页面显示一个邮箱地址,用于用户反馈错误。

reply_body_max_size 1024000 allow all
#限制下载文件大小,单位为字节B。

二、优化配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
cache_dir ufs /var/spool/squid  100 16 256     
#设置在本地磁盘设置一个缓存目录用于缓存数据。
“ufs”表示缓存数据的存储格式;
“/var/spool/squid”表示设置的缓存目录;
“100”表示缓存目录占磁盘空间大小,单位为MB;
“16”表示缓存数据的一级子目录个数为16个;
“256”表示缓存数据的二级子目录个数为256个。

cache_mem 1024MB
#缓存占物理内存大小。单位为MB。

cache_swap_low 85
#缓存占Swap虚拟内存最低大小为85%。

cache_swap_high 95
#缓存占Swap虚拟内存最高大小为95%。当缓存数据占内存大小到95%时,会自动删除旧数据释放内存空间到百分之85%。

minimum_object_size 0KB
#设置数据对象(页面数据)的最小大小,0表示不限制。

maximum_object_size 4096KB
#设置数据对象(页面数据)的最大大小,当大于4MB的数据在不会缓存到磁盘。

欢迎关注我的CSDN个人博客知乎