squid是应用层的代理服务软件 主要提供缓存加速,应用层过滤控制的功能。可以基于squid做传统代理,透明代理,反向代理。

主配置文件常用项的含义:

 

  1. http_port 3128   //监听端口 如只监听一个IP的端口的话 格式:    
  2.                       192.168.1.1:3128  
  3. cache_mem 60MB   //缓存功能的内存大小, 设为物理内存的1/4,1/3  
  4. maximum_object_size 4096KB  //允许保存到高速缓存的最大对象大  
  5.                                    小,超过的话不缓存 直接给客户  
  6. reply_body_max_size 10240000 allow all 
  7. //允许用户下载最大文件大小,默认字节,  all是访问控制列表的名称
  8. access_log /var/log/squid/access.log squid 日志存放位置和格式
  9. visible_hostname proxy.example.com //代理服务器的主机名
  10. dns_testnames www.baidu.com //测试DNS是否正常  
  11. cache_dir ufs/var/spool/squid 100 16 256   
  12. //设置缓存数据时使用的目录参数, ufs是squid的缓存文件格式, /var/spool/squid是缓存数据存放的目录 后面的三个是 缓存可以使用的磁盘大小MB,一级子目录个数,二级子目录个数 

配置传统的代理:

1:配置Squid代理服务器端:vi  /etc/squid.conf

 

  1. http_port 3128  
  2. visible_hostname www.example.com  
  3. reply_body_max_size 10240000 allow all 
  4. http_access allow all //查找修改这行,或者就是放到 xxxxx den  
  5.                         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链被调用

  1. 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的预定义值 内容根据类型定义 多个内容的关系的是”或“ 满足一个就匹配成功】