精华内容
下载资源
问答
  • Squid

    2021-01-12 20:23:58
    Squid 什么是squidSquid是一个高性能的代理缓存服务器。它是这样实现其功能的,接受来自人们需要访问的目标(object)的请求并适当地处理这些请求。也就是说,如果一个人想访问一web页面,请求Squid为它取得这个...

    Squid

    什么是squid?

    Squid是一个高性能的代理缓存服务器。它是这样实现其功能的,接受来自人们需要访问的目标(object)的请求并适当地处理这些请求。也就是说,如果一个人想访问一web页面,请求Squid为它取得这个页面。Squid随之连接到远程服务器,并向这个页面发出请求。然后,Squid聚集数据到客户端机器,而且同时复制一份。当下一次有人需要同一页面时,Squid可以简单地从磁盘中读到它,那样数据迅即就会传输到客户机上。当前的Squid可以处理HTTP,FTP,SSL、GOPHER和WAIS等协议。

    Squid的工作类型

    传统代理–正向代理

    默认使用的方案
    在这里插入图片描述

    举例说明:如果一个公司不能上外网,大家都是使用内网工作。但是为了工作需要,公司为研发部门配置了一台能够上外网的电脑,这样大家为了上外网,就会争抢这台电脑。但是有的人就想方设法把自己的电脑也得鼓捣的能连接外网,就是通过能那台连接外网的的电脑,连接外网(伪装成通外网的电脑上网),这种场景就是传统代理 /正向代理。

    实验演示

    环境准备

    客户端:192.168.4.116 网段1

    正向代理服务器:192.168.4.113/192.168.100.113 网段1+网段2(两块网卡)

    服务端:192.168.100.115 网段2

    客户端
    route add default gw 192.168.4.113  #设置默认网关
    vim /etc/profile
    export HTTP_PROXY=HTTP://192.168.4.113:3128  #增加代理
    . /etc/profile  #刷新环境变量
    yum -y install elinks  #安装浏览器
    
    正向代理服务器
    yum install -y squid  #安装squid
    vim /etc/squid/squid.conf  #修改配置文件
    http_port 3128
    visible_hostname www.atguigu.com
    
    service squid start  #开启squid
    
    vim /etc/sysctl.conf 
    net.ipv4.ip_forward = 1  #开启内核转发
    
    服务端
    yum install -y httpd  #咱Apache
    service httpd start  #开启
    echo "HelloWorld" > /var/www/html/index.html
    
    测试
    elinks 192.168.100.115  #客户端访问服务端
    HelloWorld   #访问结果
    

    透明代理

    在这里插入图片描述

    客户端根本不需要知道有代理服务器的存在,其实也属于传统代理的一种,不同的是传统代理需要在客户端设置代理的IP和PORT,透明代理则是当该请求包通过透明代理服务器时,被防火墙将该数据包重定向到代理服务器的绑定端口3128,代理服务器使用某一端口,向web服务器请求数据,收到数据后,返回给客户端,自己缓存一份。

    实验演示

    环境准备

    客户端:192.168.4.116 网段1

    正向代理服务器:192.168.4.113/192.168.100.113 网段1+网段2(两块网卡)

    服务端:192.168.100.115 网段2

    客户端
    route add default gw 192.168.4.113  #设置默认网关
    yum -y install elinks  #安装浏览器
    
    代理服务器端
    yum install -y squid  #安装squid
    vim /etc/squid/squid.conf  #修改配置文件
    http_port 192.168.4.113:3128 transparent
    visible_hostname www.atguigu.com
    
    service squid start  #开启squid
    
    vim /etc/sysctl.conf 
    net.ipv4.ip_forward = 1  #开启内核转发
    
    service iptables start 
    iptables -F #清除规则
    iptables -t nat -A PREROUTING -i eth0 -s 192.168.4.0/24 -p tcp --dport 80 -j REDIRECT --to-ports 3128  #设置防火墙规则,使经过代理服务器访问服务器的地址重定向到代理服务器的3128端口
    iptables -t nat -L #查看设置的规则
    
    客户端
    yum install -y httpd  #咱Apache
    service httpd start  #开启
    echo "HelloWorld" > /var/www/html/index.html
    
    测试
    elinks 192.168.100.115  #客户端访问服务端
    HelloWorld   #访问结果
    

    反向代理

    在这里插入图片描述

    反向代理是相对正向代理而言,是代理web服务器接受客户端的请求。客户端向web服务器发送请求,客户端本地的DNS服务器会将客户请求的域名,解析成Squid服务器IP,然后客户端发送,IP请求,请求到达反向代理服务器,反向代理服务器查询自己是否有客户请求的资源,如果有,直接发送给客户端,如果没有则通过内部DNS轮询的方式向真实服务器发送请求,得到客户端所需要的数据,然后发送给客户端,自己则保留一份。

    支持同类型的服务器相互同步,只支持rr算法

    实验展示

    环境准备

    客户端:192.168.4.116 网段1

    反向代理服务器:192.168.4.113/192.168.100.113 网段1+网段2(两块网卡)

    服务端:192.168.100.115 网段2

    ​ 192.168.100.112 网段2

    客户端
    route add default gw 192.168.4.113  #设置默认网关
    yum -y install elinks  #安装浏览器
    
    反向代理服务器端
    yum install -y squid
    vim /etc/samba/smb.conf
    acl localnet src 192.168.100.0/24	#acl访问控制列表,localnet:控制列表的名称,src:允许访问的源地址:192.168.100.0/24  
    http_port 192.168.4.113:80 vhost  #指定本机的公网IP和PORT vhost:虚拟主机
    cache_dir ufs /var/spool/squid 100 16 256  #将注释打开
    visible_hostname www.atguigu.com  #本机的hostname
    cache_peer 192.168.100.115 parent 80 0 originserver round-robin  #真实服务器
    cache_peer 192.168.100.112 parent 80 0 originserver round-robin  #真实服务器
    #需要注意的是:真实服务器只支持rr轮询,
    
    服务端
    节点1:192.168.100.115
    yum install -y httpd
    service heepd start 
    echo "192.168.100.115-1" > /var/www/html/1.html
    echo "192.168.100.115-2" > /var/www/html/2.html
    
    节点2:192.168.100.112
    yum install -y httpd
    service heepd start 
    echo "192.168.100.112-1" > /var/www/html/1.html
    echo "192.168.100.112-2" > /var/www/html/2.html
    
    客户端测试
    curl 192.168.4.113/1.html
    192.168.100.115-1
    curl 192.168.4.113/1.html
    192.168.100.112-2
    

    Squid软件信息

    软件包:squid-3.xxxx

    系统服务:squid

    主程序:/usr/sbin/squid

    主配置文件:/etc/squid/squid.conf

    默认端口:TCP 3128

    默认访问日志:/var/log/squid/access.log

    配置文件

    vim /etc/squid/squid.conf
    #端口使用方式
    http_port 3128  # 监听端口
    http_port 本机公网ip:真实服务器端口 vhost  #CDN缓存服务器的时候使用
    
    access_log /var/log/squid/access.log squid  # 访问日志及日志属主
    cache_mem 64 MB  # squid进程能够使用的最大内存大小
    cache_dir ufs /var/spool/squid 100 16 256  # cache_dir:缓存目录,ufs:Unix File Systemc使用的文件系统,/var/spool/squid:缓存路径,100:squid使用的最大值,16:一级目录的数量(最多),256:二级目录的数量(最多),加快索引速度--hash tables  digest tables
    visible_hostname proxy.benet.com  # 指定当前可用的主机名
    dns_testnames www.google.com www.163.com  # 自我检测(能否上网)
    cache_peer 192.168.100.115 parent 80 0 originserver round-robin  #做CDN缓存服务器时指定的真实服务器,192.168.100.115(真实服务器IP),parent(上游服务器),80(真实服务器端口),0(代表周围有没有squid服务器,有写端口自己去寻找,没有写0),originserver(代表一个子节点),round-robin(rr轮询,没有其他算法)
    maximum_object_size 4096 KB  # 允许缓存资源的最大值
    reply_body_max_size  10 MB  # 允许请求的资源的最大值
    

    ACL(Access Control List)访问控制列表

    顾名思义,就是控制访问对象的,控制访问的类别也是非常多的,具体如下表所示:

    src 源地址、网段,IP地址范围 192.168.4.0/24 192.168.5.115
    dst 目标地址、网段,主机名 server
    port 目标端口 21 443 80
    dstdomain 目标域
    time 访问时间,星期一到星期天分别为:M T W H F A S
    maxconn 最大并发连接
    url_regex 目标URL地址 www.baidu.com
    Urlpath_regex 整个目标URL路径 http://www.baidu.com/1.jpeg

    格式:acl 列表名称 列表类型 列表内容

    acl localnet src 10.0.0.0/8  #localnet:这条权限的名称,src:源地址控制,10.0.0.0/8:控制的网段,也就是说访问地址是10.网段的才能够进行访问
    acl Safe_ports port 80  #Safe_port:这条权限的名称,port:对目标端口访问的限制,80:只允许80被访问,也就是说,只能访问本机的80端口
    

    针对已定义的acl列表进行放行/拒绝

    格式:http_access allow/deny 列表名称(定义的ACL规则的名称)

    acl ll src 192.168.100.0/24  #定义一条acl权限
    http_access allow ll  #放行定义的名称为ll的这条规则
    http_access deny all  #这条规则一定要在所有的http_access规则的最后,否则定义的http_access规则不生效
    

    注意:1.如果只定义了acl访问的权限,不加http_access是否放行,默认拒绝

    ​ 2. 在加http_access放行规则,一定要写在“http_access deny all”这条规则的上方,否则不生效。

    ​ 3.当“http_access deny all”这条规则被注释掉时并且定义了acl范围却不做http_access的规则,或者定义的规则找不到范围,那么当前acl范围,会以最后一行的http_access做反向操作,即如果设置的是allow,则访问拒绝;如果设置的是deny,则允许访问。

    展开全文
  • squid

    2019-12-12 12:27:24
    squid官网 http://www.squid-cache.org/ 下载链接 http://www.squid-cache.org/Versions/ squid权威指南 http://zyan.cc/book/squid/chap01.html 网上一个哥们的心得 ...
    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,052
精华内容 5,220
关键字:

Squid