squid详解

由于最近要对公司网络进行优化,经过研究使用squid对网络进行正向代理来增加速度.

squid下载地址

一、squid命令

平时常用的squid的常用操作有八个(该版本也是网上来回转载较多的):

1、初始化squid.conf 里配置的cache目录

/App/squid/sbin/squid-z//初始化缓存空间

如是想观察整个过程,请增加-X参数,即:squid -zX 。如果有错误提示,请检查你的 cache目录的权限。

2、对squid.conf排错,即验证squid.conf的语法和配置。

/App/squid/sbin/squid-k parse

如果squid.conf 有语法或配置错误,这里会返回提示。如果没有返回,如果没有返回则启动成功

3、在前台启动squid,并输出启动过程。

/App/squid/sbin/squid-N-d1

如果有到 ready to server reques,恭喜,启动成功。然后 ctrl + c,停止squid,并以后台运行的方式启动它。

4、启动squid在后台运行。

/App/squid/sbin/squid-s

启动squid,并将日志记录到syslog进程。

5、停止 squid

/App/squid/sbin/squid-k shutdown

最安全的停止squid的方法,另外还有 -k interrupt 与-k kill命令也用于关闭squid,其之间的区别会在squid的参数中讲到。

6、重引导修改过的 squid.conf

/App/squid/sbin/squid-k reconfigure//载入新的配置文件

这个估计用的时候比较多,当你发现你的配置有不尽你意的时候,可以随时修改squid.conf,然后别忘记对你的 squid.conf排错,然后再执行此指令,即可让squid重新按照你的 squid.conf 来运行。

7、轮循日志

/App/squid/sbin/squid-k rotate

每次执行squid -k rotate时,Squid轮循下列文件:cache.log, access.log, store.log, useragent.log (假如已激活), 以及referer.log (假如已激活)。

同时,Squid也会创建最新版本的swap.state文件。然而请注意,swap.state不会以数字扩展形式来轮转。

另外,要特别提示一下swap.state文件。当squid应用运行了一段时间以后,cache_dir对应的swap.state文件就会变得越来越大,里面的无效接口数据越来越多,这可能在一定程度上影响squid的响应时间,此时我们可以使用rotate命令来使squid清理swap.state里面的无效数据,减少swap.state的大小。

8、把squid添加到系统启动项

编辑 /etc/rc.d/rc.local 添加如下行:

/App/squid/sbin/squid-sD

9、squid_start脚本

/usr/local/squid/sbin/squid-sD && squid -sD

10、自制启动脚本

#!/bin/bash

case $1 in

start)

/usr/local/squid/sbin/squid -s

;;

stop)

/usr/local/squid/sbin/squid -k shutdown

;;

easc

11、计划任务运行轮训日志

squid -k rotate//日志轮训

0 4 * * * * /usr/local/squid/sbin/squid -k rotate .//凌晨4点运行日志轮训

二、访问控制

1、ACL元素是squid的访问控制的基础。这里告诉你如何指定包括IP、端口、主机名、url匹配变量。每个ACL元素都有个名字在编写访问规则的时候需要引用,基本元素如下:

acl name type value1 value2 value3

acl workstation src 10.0.0./16

2、多数情况下,ACL元素列举多个值。可以多个acl使用多个名字,配置是等价

acl http_ports port 80 8000 8080

acl httpd_ports port 80

acl httpd_ports port 8000

acl httpd_ports port 8080

3、IP地址

使用对象:src,dst,myip

squid在ACL里指定ip地址时,可以以子网、地址范围、域名等形式编写。

acl foo src 10.0.0.0/24

acl foo src 10.0.0.0/255.255.255.0

acl foo src 10.0.0.1

4、主机名

指定主机名

acl xxx dstwww.cgmb.com.cn

5、匹配域名

指定域名

acl a dstdomain foo.com

acl b dstdomain foo.com

6、正则表达式

适用对象:srcdom_regex, dstdom_regex, url_regex, urlpath_regex, browser, referer_regex, ident_regex, proxy_auth_regex, req_mime_type, rep_mime_type

^字符匹配行或者字符开头

^http:// . 表达式匹配任意http://开头

\.jpg$ .    表达式匹配jpg结尾,反斜杠为转意符

实例:acl foo url_regex -i ^http://www  (-i 参数不区分大小写)

7、TCP端口号

acl foo port 123

acl foo port 1024-5000

三、ACL类型

1.src

ip地址在访问控制元素普遍使用,大部分站点使用ipl来做访问限制,src类型指定客户端ip源,也就是说,当src出现在acl控制列表里面时,squid将它与发布的请求ip做对比

单子网:acl mynetwork src 192.168.0.0/24

多子网:acl mynetwork src 192.68.0.1/24 10.0.0.0/24

2.dst

原始服务器地址

acl adserver dst 1.2.3.4/24

3.myip

myip指squid本身ip地址

acl admin myip 1.1.1.1

4.myport

squid加速器配置

acl accport myport 80

acl proxyport myport 3128

5.method请求类型

method acl 指请求http请求方法。GET、POST

acl purge method purge

acl localhost src 127.0.0.1

http_access allow purge localhost

http_access deny purge

6.proto

协议类型

acl FTP proto FTP

7.maxconn

每个用户最大连接数

acl overconn maxconn 4

http_access deny overconn



作者:骨感冰人
链接:https://www.jianshu.com/p/a9364ac3de68
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
posted @ 2019-06-18 11:25  顺义姆巴佩  阅读(756)  评论(0编辑  收藏  举报