文:铁乐与猫

环境

centos 6.5 x64

安装

最简单的一种就是yum安装。

yum install squid

版本

rpm -qa | grep squid

squid-3.1.23-16.el6_8.6.x86_64

此外就是编译安装

配置

修改squid的配置文件 /etc/squid/squid.conf

主要就是配置一下端口,缓存,日志和访问规则。

  1. http_port 8904 #默认3128,必然得改
  2. cache_mem 64MB #内存中的缓存大小
  3. maximum_object_size 4MB
  4. #最大被缓存文件大小,配合cache_dir使用,只作用于缓存到磁盘的文件。
  5. cache_dir ufs /var/spool/squid 100 16 256
  6. #缓存目录,默认只是在内存中进行缓存。
  7. #这里指定缓存大小为100M,第一层子目录为16个,第二层为256。
  8. access_log /var/log/squid/access.log #访问日志
  9. visible_hostname squid.server
  10. #自定义的代理服务器的主机信息,会出现在错误警告页里。

然后就是一系列的自定义的acl控制列表,就不详列了。


  1. http_port 3128      //设置监听的IP与端口号
  2. cache_mem 64 MB      
  3. //额外提供给squid使用的内存,squid的内存总占用为 X * 10+15+“cache_mem”,其中X为squid的cache占用的容量(以GB为单位),
  4. //比如下面的cache大小是100M,即0.1GB,则内存总占用为0.1*10+15+64=80M,推荐大小为物理内存的1/3-1/2或更多。
  5. maximum_object_size 4 MB   
  6. //设置squid磁盘缓存最大文件,超过4M的文件不保存到硬盘
  7. minimum_object_size 0 KB   
  8. //设置squid磁盘缓存最小文件
  9. maximum_object_size_in_memory 4096 KB   
  10. //设置squid内存缓存最大文件,超过4M的文件不保存到内存
  11. cache_dir ufs /var/spool/squid 100 16 256   
  12. //定义squid的cache存放路径 、cache目录容量(单位M)、一级缓存目录数量、二级缓存目录数量
  13. logformat combined %>a %ui %un [%tl] "%rm %ru HTTP/%rv" %Hs %<st "%{Referer}>h" "%{User-Agent}>h" %Ss:%Sh //log文件日志格式
  14. access_log /var/log/squid/access.log combined  //log文件存放路径和日志格式
  15. cache_log /var/log/squid/cache.log   //设置缓存日志
  16. logfile_rotate 60   //log轮循 60天
  17. cache_swap_high 95  //cache目录使用量大于95%时,开始清理旧的cache
  18. cache_swap_low 90   //cache目录清理到90%时停止。
  19. acl localnet src 192.168.1.0/24  //定义本地网段
  20. http_access allow localnet  //允许本地网段使用
  21. http_access deny all  //拒绝所有
  22. visible_hostname squid.dev  //主机名
  23. cache_mgr xx@qq.com  //管理员邮箱

初始化

在第一次启动之前或者修改了cache路径之后,需要重新初始化cache目录。

squid -z

启动

service squid start

添加用户认证

为了防止squid代理被爬虫扫到并且被用于不法用途,(比如发垃圾邮件),非常有必要为squid添加用户认证。

通过ncsa认证模块来为squid添加认证(还有其他模块,但这个模块是最常用到和大概是最简易的)

配置访问用户的账户信息。最后一个参数是用户名。这一步其实像是替linux建账户一样。

只是需要用到的htpasswd(注意,你没看错,就是htpasswd,而不叫httpasswd,逼死强迫症。)

这个工具,需要安装Apache才有(yum install httpd)。

又或者安装apache独立的工具包apache2-utils更好,

但centos上还真不好找,后来发现在centos上其实就是yum install httpd-tools。就是那些独立工具包了。

安装后默认位置在/usr/bin/htpasswd

htpasswd -c /etc/squid/passwd tiele

敲完这条命令后,会让你输入密码,然后就顺利在passwd文件里生成你的账号密码信息了。

但是后来发现太坑爹了,原来这个命令只能创建一个用户,你第二次输会将前文覆盖!!!

重要:之后添加用户,要把上面的命令去掉-c参数再运行。

-c应该就是指定配置或创建配置文件的意思,真是掉以轻心……犯了错……

所以建议正规做法还是先touch或vim创建一个passwd文件……然后直接是不加-c参数去运行。

而且我在输完十几条这样的命令后才去检查的也是失策,应该两到三个后就该cat看一下文件内容有没有才对!

另附删除用户命令

htpasswd -b -D /etc/squid/passwd usrname passwd

当然我感觉直接进/etc/squid/passwd这个文件里直接删除会更省事

然后在配置文件里加上以下命令:

  1. auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwd
  2. #注意,basic_ncsa_auth是在3.3版本,在3.1.23这个版本是直接ncsa_auth
  3. #该选项指出了认证方式(basic)、需要的程序(ncsa_auth)和 对应的密码文件(password)
  4. auth_param basic children 8 #认证程序同时跑的个数
  5. auth_param basic realm tiele's squid server #客户端在使用代理时,输入密码时弹出来的提示框中的描述文字。
  6. auth_param basic credentialsttl 8 hours #认证的持续时间
  7. acl normal proxy_auth REQUIRED
  8. #对normal这个链使用外部程序进行认证。注意,这个名称不能和其他一样。
  9. http_access allow normal #允许normal组中的成员访问
  10. http_access deny all #最后总是会有一条拒绝所有访问的配置。

之后重启squid

service squid restart

附:

访问控制

使用访问控制特性,可以控制在访问时根据特定的时间间隔进行缓存、访问特定站点或一组站点等等。

Squid 访问控制有两个要素:ACL 元素和访问列表。访问列表可以允许或拒绝某些用户对此服务的访问。

下面列出一些重要的 ACL 元素类型

  1.   * src : 源地址 (即客户机IP地址)
  2.   * dst : 目标地址 (即服务器IP地址)
  3.   * srcdomain : 源名称 (即客户机名称、域名)
  4.   * dstdomain : 目标名称 (即服务器名称、域名)
  5.   * time : 一天中的时刻和一周内的一天
  6.   * url_regex : URL 规则表达式匹配
  7.   * urlpath_regex: URL-path 规则表达式匹配,略去协议和主机名
  8.   * proxy_auth : 通过外部程序进行用户验证
  9.   * maxconn : 单一 IP 的最大连接数

为了使用控制功能,必须先设置 ACL 规则并应用。

ACL 声明的格式如下:

  acl acl_element_name type_of_acl_element values_to_acl

  注:

  1.   1. acl_element_name 可以是任一个在 ACL 中定义的名称。
  2.   2. 任何两个 ACL 元素不能用相同的名字。
  3.   3. 每个 ACL 由列表值组成。
  4. 当进行匹配检测的时候,多个值由逻辑或运算连接;
  5. 换言之,即任一 ACL元素的值被匹配,则这个 ACL 元素即被匹配。
  6.   4. 并不是所有的 ACL 元素都能使用访问列表中的全部类型。
  7.   5. 不同的 ACL 元素写在不同行中,Squid 将把它们组合在一个列表中。
  8.   我们可以使用许多不同的访问条目。下面列出我们将要用到的几个:
  9.   * http_access: 允许 HTTP 访问。这个是主要的访问控制条目。
  10.   * no_cache: 定义对缓存请求的响应。
  11.   访问列表的规则由一些类似 'allow' 'deny' 的关键字构成,用以允许或拒绝向特定或一组 ACL 元素提供服务。

注:

  1. 这些规则按照它们的排列顺序进行匹配检测,一旦检测到匹配的规则,匹配检测就立即结束。

  2. 一个访问列表可以由多条规则组成。

  3. 如果没有任何规则与访问请求匹配,默认动作将与列表中最后一条规则对应。

  4. 一个访问条目中的所有元素将用逻辑与运算连接:

  http_access Action 声明1 AND 声明2 AND 声明 OR.

  http_access Action 声明3

  多个 http_access 声明间用或运算连接,但每个访问条目的元素间用与运算连接。

  5. 请记住列表中的规则总是遵循由上而下的顺序。

下一篇和squid有关的博文再介绍客户端上使用浏览器设置PAC文件代理配合走squid代理浏览重要站点。

适合设置权限让基本只有公司内部的成员才有权访问项目网站的后台管理。

end

Squid安装配置和使用的更多相关文章

  1. Windows Squid 安装配置

    squid 可以做反向代理将系统中相对静态的页面进行缓存和负责均衡,提高网站访问速度,增强网站可用性.安全性.用户访问Squid 反向代理服务器的 IP 地址,这样客户端的 URL 请求将被发送到反向 ...

  2. Linux squid 安装配置

    linux 代理软件 squid 查看是否安装squid   以上信息表明,本机是已经安装了此软件了 如果没有显示说明没有安装,则可以使用yum工具来安装   安装完软件后我们接着开始配置squid代 ...

  3. linux:服务器代理squid安装配置

    国内上往外的网站太慢,配了个香港代理服务器.如下:当前环境: centos系统.香港服务器IP(假设:59.188.71.11)检查squid是否安装:[root@localhost ~]# rpm ...

  4. squid安装配置

    Squid做反向代理(192.168.1.69) squid.conf http_port 80 vhost vport visible_hostname pdd2.matrixcdn.net cac ...

  5. centos5.5用phpstudy一键安装配置虚拟主机后,yum配置代理服务器squid

    最近因为工作需要,开发站点需要在lamp环境下跑网站,于是在win7上跑虚拟机装了一个centos5.5的linux 并用集成环境配置了一个lamp环境,这里用的是phpstudy的一键安装包,并配置 ...

  6. Centos7 squid安装与配置

    装squid yum install -y squid 安装httpd(用于后面生成密码文件) yum install -y httpd 或者 yum install httpd-tools -y 配 ...

  7. squid cache 服务器端的安装,配置

    一,什么squid Squid是一个高性能的代理缓存服务器,可以加快内部网浏览Internet的速度,提高客户机的访问命中率.Squid不仅支持HTTP协议, 还支持FTP.gopher.SSL和WA ...

  8. samba和squid 安装

    一. samba配置1. 什么是sambaSamba服务类似于windows上的共享功能,可以实现在Linux上共享文件,windows上访问,当然在Linux上也可以访问到.是一种在局域网上共享文件 ...

  9. 大数据应用日志采集之Scribe 安装配置指南

    大数据应用日志采集之Scribe 安装配置指南 大数据应用日志采集之Scribe 安装配置指南 1.概述 Scribe是Facebook开源的日志收集系统,在Facebook内部已经得到大量的应用.它 ...

随机推荐

  1. Hadoop MapReduce流程及容错

    shuffle流程 输入分片(input split):在进行map计算之前,mapreduce会根据输入文件计算输入分片(input split),每个输入分片(input split)针对一个ma ...

  2. Lucene系列-facet--转

    https://blog.csdn.net/whuqin/article/details/42524825 1.facet的直观认识 facet:面.切面.方面.个人理解就是维度,在满足query的前 ...

  3. 安装sublime text2 for ubuntu

        Add our Sublime Text 2 Ubuntu PPA using the following commands: sudo add-apt-repository ppa:webu ...

  4. 2017年10月21日 CSS常用样式&鼠标样式 以及 jQuery鼠标事件& jQuery图片轮播& jQuery图片自动轮播代码

    css代码 背景与前景 background-color:#0000; //背景色,样式表优先级高 background-image:url(路径); //设置背景图片 background-atta ...

  5. 第一次搭建dns服务器

    CentOS 7 搭建DNS服务器 主要参考的是小左先森的一篇博客:https://blog.51cto.com/13525470/2054121. 1.搭建过程中遇到的几个问题说一下: a.在重启服 ...

  6. Java8简明学习之Optional

    Java在8的版本,新增了Optional和lambda表达式,使得日常开发中对于NullPointException的判断变的优雅. 现在来个例子看看在Optional之前对空的判断. @Test ...

  7. Code Signal_练习题_Sort by Height

    Some people are standing in a row in a park. There are trees between them which cannot be moved. You ...

  8. Yii CGridView 关联表搜索排序实例

    在这篇文章中,我准备讲解如何在CGridView中搜索或者排序关联表中的某一行,通过给Yii Blog demo添加一个list页面. 首先,检查你的blog demo里的protected\mode ...

  9. CSS响应式:根据分辨率加载不同CSS的几个方法,亲测可用

    有时候你需要把同一个页面在手机和pc同时打开,其中有一个办法就是判断不同分辨路加载不同的css 小编总结了几种分别加载css的方法: 1.比较复杂的使用js判断加载不同css (亲测可用) 但是这种方 ...

  10. 润乾报表如何使用Echarts

     1.    润乾报表中使用Echarts统计图的步骤 2.    报表中添加echarts2统计图 选中需要设为统计图的单元格,点击 报表-第三方图形 菜单项,或者右键菜单-第三方图形,在图形编 ...