Squid Cache(简称为Squid)是一个流行的代理服务器和Web缓存服务器软件。Squid有广泛的用途:从作为网页服务器的前置缓存服务器缓存相关请求来提高Web服务器的速度,到为一组人共享网络资源而缓存万维网、域名系统和其他网络搜索,到通过过滤流量帮助网络安全,到局域网通过代理上网。Squid主要设计用于在Unix一类系统运行。
-----<引用自维基百科>
简而言之Squid就是:当你发送下载一个web页面的请求时,squid接收你的请求,然后代理你下载页面并返回给你,同时把你请求下载的web复制一份到本地磁盘,等到下一次squid收到下载同一个web页面请求时,不去请求服务器,直接读取本地磁盘数据,减轻服务器负载。
当前的Squid可以处理HTTP,FTP,GOPHER,SSL等协议。但它不能处理如POP,NNTP,RealAudio以及其它类型的东西.
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
usf:缓存数据的存储格式
/var/spool/squid 缓存目录
100 : 缓存目录占磁盘空间大小(M)
16 :缓存空间一级子目录个数
256 :缓存空间二级子目录个数
cache_mgr root@localhost /定义管理员邮箱
http_access deny all /访问控制
简单的来说squid可以做正向代理,反向代理,透明代理三种。
一、正向代理
主要应用于局域网内部对外的访问代理。
作用:减少带宽占用,增加访问速度,进行访问控制;
步骤:
1,服务器配置
Vim/etc/squid/squid.conf
httpd_port 3128 //接收web请求的端口
access_log /var/log/squid/access.log //指定日志位置
http_access allow all //允许http_access表的用户通过访问
2,把所有客户端PC指向代理服务器(浏览器->工具->选项->连接->局域网设置->代理服务器)
透明代理
如果你还在为PC指向代理服务器的的大量频繁操作苦恼,那你现在就需要这个透明代理啦!透明代理不需要PC指向代理,只要在squid服务器上简单修改iptables策略就可以啦!对于PC根本不知道代理存在!
透明代理与正向代理配置大概相同。
http_port 3128 transparent //指定Squid监听浏览器客户请求的端口号
开启转发:
echo 1>/proc/sys/net/ipv4/ip_forward 开启转发
iptables -t nat -A PREROUTING-p tcp --dport 80 -j REDIRECTORY -dport –to3128 目标端口转换