• 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
    来源:简书
    简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
  • 相关阅读:
    【原创】C#零基础学习笔记010-数据流技术
    【原创】C#零基础学习笔记009-异常处理
    【原创】C#零基础学习笔记008-C#集合处理
    【原创】C#零基础学习笔记007-面向对象的特性
    【原创】C#零基础学习笔记006-面向对象编程基础
    【原创】C#零基础学习笔记005-字符串和日期
    【原创】C#零基础学习笔记004-数组
    session
    最简朴的 session 来实现 登录验证
    cookies session 代码例子
  • 原文地址:https://www.cnblogs.com/Jintaonet/p/11044250.html
Copyright © 2020-2023  润新知