首页 > 代码库 > squid的配置及功能的设置

squid的配置及功能的设置

                        squid正向代理
正向代理,意思是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端才能使用正向代理。从某种意义上说,“客户端和正向代理服务器像是位于同一个局域网”。正向代理服务器的主要目的是缓存数据来响应客户端的 HTTP 请求,一般都会进行用户访问控制,使用时需要在浏览器中进行 IP 和端口设置。正向代理的典型用途是为在防火墙内的局域网客户端提供访问Internet的途径。正向代理还可以使用缓冲特性(由mod_cache提供)减少网络使用率。

功能: 

1.共享网络
2.加快访问速度,节约通信带宽
3.防止内部主机受到攻击
4.限制用户访问,完善网络管理

 

服务名:squid
主程序:/usr/sbin/squid
配置目录:/etc/squid
主配置文件:/etc/squid/squid.conf
监听tcp端口号:3128
默认访问日志文件:/var/log/squid/access.log
 
squid常用配置选项

/etc/squid/squid.conf
http_port 3128  (还可以只监听一个IP http_port 192.168.0.1:3128)
cache_mem 64MB  #缓存占内存大小
maximum_object_size 4096KB  #最大缓存块
reply_body_max_size  1024000 allow all      #限定下载文件大小
access_log /var/log/squid/access.log    #访问日志存放的地方
visible_hostname    proxy.test.xom  #可见的主机名
cache_dir ufs /var/spool/squid  100 16 256
#ufs:缓存数据的存储格式
#/var/spool/squid    缓存目录
#100:缓存目录占磁盘空间大小(M)
#16:缓存空间一级子目录个数
#256:缓存空间二级子目录个数
cache_mgr webmaster@test.com    #定义管理员邮箱
http_access deny all    #访问控制

 

squid安装
 1.安装可以使用yum -y install squid或者下载源码包安装都可以。
 yum install -y squid
 2.squid主配置文件是/etc/squid/squid.conf ,最基本配置如下:
 http_port  3128                       设置监听的端口和ip
 cache_mem 64 MB    设置内存缓冲的大小
 cache_dir ufs /var/spool/squid 100 16 256   设置硬盘缓冲大小
 cache_dffective_usersquid        设置缓存的有效用户
 cache_effective_groupsquid    设置缓存的有效用户组
 dns_nameservers 192.168.0.253    设置dns服务器地址,一般可以不设置
 cache_access_log /var/log/squid/access.log  设置访问日志文件
 cache_log /var/log/squid/cache.log   设置缓存日志文件
 cache_store_log  /var/log/squid/cache.log  设置缓存日志文件
 visible_hostname  bob   设置squid主机名称
 cache_mgr 123@126.com   设置管理员邮箱
 acl all src 0.0.0.0/24   设置访问控制列表
 http_access allow all    设置访问权限

 默认搭建好的squid是允许访问所有的站点的,例如限制
acl http proto HTTP
acl good dstdomain .baidu.com .qq.com
http_access deny good


缓存数据的类型
refresh_pattern \.(jpg|png|fig|js|css|mp3|mp4) 1440 20% 2800 ignore-reload

 

设置允许那些ip可以使用proxy
acl inside src 192.168.1.0/24
http_access allow inside
http_access deny all

 

在定义多个网站的时候,可以定义在一个文档里
acl allsite dstdomain "/etc/squid/allowsite.txt"
http_access allow allsite
http_access deny !allsite
进入/etc/squid目录下创建allsite文本
touch allsite 
吧允许访问的网站写入到该文本即可
如:
.baidu.com
.qq.com

 

同样也可以对ip限制
acl sdIP src  "/etc/squid/sdIP.txt"
vim /etc/squid/sdIP.txt  添加ip,每行写一个ip
 192.168.1.1
 192.168.2.1
http_access allow sdIP allsite     #设置单独的ip允许访问单独的站点

设置单独的ip,允许访问某个站点
acl ashleycai src 192.168.1.14/32
acl ashleyip dstdomain .qq.com
http_access allow ashleycai ashleyip

 

定义ip和定义站点
acl aaip src 192.168.1.1
acl qq dstdomain .qq.com

 

定义时间段
acl accesstime time 8:00-11:45
acl accesstime time 13:00-22:00

 

定义特定的文件类型
acl mp3 urlpath_regex -i \.mp3
acl mp4 urlpath_regex -i \.mp4
acl flv urlpath_regex -i \.flv


定义特定的文件类型文件
acl badfile urlpath_regex -i "/etc/squid/badfile.txt"

 


squid取消错误页面出现的版本信息
vim /etc/squid/squid.conf
启用如下选项:httpd_suppress_version_string on


重新加载squid配置
service squid reload

 

squid常用命令:
/usr/local/squid/sbin/squid -z 初始化缓存空间
/usr/local/squid/sbin/squid 启动
/usr/local/squid/sbin/squid -k shutdown 停止
/usr/local/squid/sbin/squid -k reconfigure 重新载入配置文件
/usr/local/squid/sbin/squid -k rotate 轮循日志

 

 

参考:

http://www.cnblogs.com/cherishry/p/5706736.html

 

squid的配置及功能的设置