squid是应用层的代理服务软件 主要提供缓存加速,应用层过滤控制的功能。可以基于squid做传统代理,透明代理,反向代理。
主配置文件常用项的含义:
- http_port 3128 //监听端口 如只监听一个IP的端口的话 格式:
- 192.168.1.1:3128
- cache_mem 60MB //缓存功能的内存大小, 设为物理内存的1/4,1/3
- maximum_object_size 4096KB //允许保存到高速缓存的最大对象大
- 小,超过的话不缓存 直接给客户
- reply_body_max_size 10240000 allow all
- //允许用户下载最大文件大小,默认字节, all是访问控制列表的名称
- access_log /var/log/squid/access.log squid 日志存放位置和格式
- visible_hostname proxy.example.com //代理服务器的主机名
- dns_testnames www.baidu.com //测试DNS是否正常
- cache_dir ufs/var/spool/squid 100 16 256
- //设置缓存数据时使用的目录参数, ufs是squid的缓存文件格式, /var/spool/squid是缓存数据存放的目录 后面的三个是 缓存可以使用的磁盘大小MB,一级子目录个数,二级子目录个数
配置传统的代理:
1:配置Squid代理服务器端:vi /etc/squid.conf
- http_port 3128
- visible_hostname www.example.com
- reply_body_max_size 10240000 allow all
- http_access allow all //查找修改这行,或者就是放到 xxxxx den
- y之前
2:初始化并启动代理服务器
service squid start //可直接调用suqid -z 初始化缓存目录
//squid -D 直接启动 -D不进行dns查询
//squid -K reconfigure 从新加载配置文件
日志文件在 /var/log/squid/access.log
透明代理的配置:
1.配置squid支持透明代理
http_port 192.168.1.1:3128 transparent
2:设置iptables重定向
REDIRECT(重定向)只能在nat表的PREROUTING和OUTPUT链被调用
- iptables -t nat -I PREROUTING -i eth1 -s 192.168.1.0/24 -p tcp --dport 80 -j REDIRECT --to-ports 3128
配置反向代理:
1:添加反向代理支持(squid有2网卡)
http_port 218.29.20.21:80 vhost
2:指定web服务器的主机位置
cache_peer web的地址 服务器类型 http端口 icp端口 [可选项]
【服务类型对应到目标主机的缓存级别,上游的web主机使用parent;icp端口用于链接相邻的ICP缓存服务器通常是另一台squid,没有就用0 可选项是提供缓存时候的一些参数 originserver 表示提供web服务的原始主机 weight= 权重 数字越大优先级越高 max-conn= 反向代理主机到web的最大链接数】
如:cache_peer 192.168.10.14 parent 80 0 originserver weight=5 max-conn= 10
重启就好了!!!
ACL的配置:
acl和squid主配置文件的http_access共同使用
定义ACL
acl 列表名称 列表类型 列表内容
【名称自定义 类型需使用squid的预定义值 内容根据类型定义 多个内容的关系的是”或“ 满足一个就匹配成功】