大点干!早点散 您所在的位置:网站首页 squid配置缓存规则 大点干!早点散

大点干!早点散

2024-02-01 10:11| 来源: 网络整理| 查看: 265

一、squid的概念

squid是一种用来缓存Internet数据的软件。接受来自人们需要下载的目标(object)的请求并适当的处理这些请求。也就是说,如果一个人想下载一web界面,他请求squid为他取得这个页面。squid随之连接到远程服务器并向这个页面发出请求。然后,squid显式地聚集数据到客户端机器,而且同时复制一份。当下一次有人需要同一页面时, squid可以简单的从磁盘中读到它,那样数据会立即传输到客户机上。

squid代理的作用

通过缓存的方式为用户提供Web访问加速

对用户的Web访问进行过滤控制

二、工作流程

当代理服务器中有客户端需要的数据时:

a. 客户端向代理服务器发送数据请求;

b. 代理服务器检查自己的数据缓存;

c. 代理服务器在缓存中找到了用户想要的数据,取出数据;

d. 代理服务器将从缓存中取得的数据返回给客户端。

当代理服务器中没有客户端需要的数据时:

客户端向代理服务器发送数据请求;

代理服务器检查自己的数据缓存;

代理服务器在缓存中没有找到用户想要的数据;

代理服务器向Internet 上的远端服务器发送数据请求;

远端服务器响应,返回相应的数据;

代理服务器取得远端服务器的数据,返回给客户端,并保留一份到自己的数据缓存中。

三:ACL访问控制

原理图如下

当squid服务器上启用acl访问控制列表的时候

1、定义

ACL(Access Control List,访问控制列表),可以针对源地址、目标地址、访问的URL路径、访问的时间等各种条件进行过滤

2、设置ACL分为两步定义ACL调用ACL

定义ACL格式:

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

列表名称:自己设定

3、列表类型:

src 源地址,

dst 目标地址,

port 目标端口

dstdomain 目标域名

time 访问时间

maxconn 最大并发量

url_regex 目标URL

urlpath_regex 整个目标URL 路径

使用acl配置项定义需要控制的条件

通过http_access配置项对已定义的列表做允许或拒绝的访问控制

ACL一些解释

4、典型的访问规则配置(白名单)'这种是允许某个规则可以,其他的不行 为白名单 白名单安全系数高一点' [root@squid ~]# vim /etc/squid.conf '//编辑squid配置文件' # should be allowed acl hostlocal src 192.168.110.20/32 '//监控client客户端的主机(192.168.110.20/32)取名为hostlocal' # Deny requests to certain unsafe ports http_access deny hostlocal '//调用hostlocal,设置拒绝访问' [root@squid ~]# service squid restart5、允许多个网段在工作时间上网'这种是允许某个规则可以,其他的不行 为白名单 白名单安全系数高一点' [root@localhost ~]# vi /etc/squid.conf ...... acl all src 0.0.0.0/0.0.0.0 acl MYL AN src 192.168.1.0/24 192.168.4.0/24 acl WORKTIME time MTWHF 08:30-17:30 '周一到周五 开头字母' http_ access allow MYLAN WORKTIME '两个列表一起调用' http_ access deny all '最后一条是拒绝' 6、通过黑名单来拒绝访问

这里的文件要绝对路径 ,要有可读的权限

[root@localhost opt]# echo "192.168.110.20" > /opt/ip.list [root@localhost opt]# vim /etc/squid.conf acl shang src "/opt/ip.list" '将原来的具体的IP地址改成绝对路径,效果等同于在后面接ip地址 ,只不过这样的话配置文件比较简洁,跟便于管理' http_access deny shang '调用策略,如果上面都匹配不上的话 就取反通过'四、squid日志分析工具–sarg

SARG的全称是:Squid Analysis Report Generator

SARG作为一款Squid日志分析工具,它采用html格式,详细列出了每一位用户访问internet的站点信息,时间占用信息,排名,连接次数,访问量,访问量等。

软件的主页:http://www.sarg-squid.org/ 目前最新的版本是2.0.2

1、安装squid服务

安装详细步骤请点击这里

2、squid服务器上安装sarg工具[root@squid ~]# cd /mnt/company/ [root@squid company]# tar zxvf sarg-2.3.7.tar.gz -C /opt '//解压源码包' [root@squid company]# cd /opt/sarg-2.3.7/ [root@squid sarg-2.3.7]# yum install gd gd-devel -y '//安装gd库,gcc gcc-c++之前装过了' [root@squid sarg-2.3.7]# mkdir /usr/local/sarg '//创建sarg目录' [root@squid sarg-2.3.7]# ./configure --prefix=/usr/local/sarg \ '//指定sarg目录' > --sysconfdir=/etc/sarg \ '//配置文件' > --enable-extraprotection '//开启安全防护' [root@squid sarg-2.3.7]# make && make install3、开启sarg工具的功能[root@squid sarg-2.3.7]# vim /etc/sarg/sarg.conf '//配置文件中所有的都被注释了,我们需要取消注释一下内容' access_log /usr/local/squid/var/logs/access.log '第7行//指定访问日志文件' title "Squid User Access Reports" '第25行//网页标题' output_dir /var/www/html/squid-reports '第120行//报告输出目录' user_ip no '第178行//使用用户名显示' exclude_hosts /usr/local/sarg/noreport '第206行//不计入排序的站点列表文件' topuser_sort_field connect reverse '第184//top排序中有连接次数,访问字节,降序排列,升序是normal' overwrite_report no '第257行//同名日志是否覆盖' mail_utility mailq.postfix '第289行//发送邮件报告命令' charset UTF-8 '第434行//使用字符集' weekdays 0-6 '//top排行的时间周期' hours 0-23 '第525行//top排行的时间周期' www_document_root /var/www/html '第633行//网页根目录' [root@squid sarg-2.3.7]# touch /usr/local/sarg/noreport '//添加不计入站点文件,添加的域名将不被显示' [root@squid sarg-2.3.7]# ln -s /usr/local/sarg/bin/sarg /usr/local/bin/ '//创建sarg命令的软连接' [root@squid sarg-2.3.7]# sarg '//生成报告' SARG: 纪录在文件: 123, reading: 100.00% SARG: 成功的生成报告在 /var/www/html/squid-reports/2020Feb08-2020Feb08 '//提示报告生成在这个目录,我们进入这个目录查看一下' [root@squid sarg-2.3.7]# cd /var/www/html/squid-reports/ '//进入目录' [root@squid squid-reports]# ls 2020Feb08-2020Feb08 images index.html [root@squid squid-reports]# yum install httpd -y '//安装httpd' [root@squid squid-reports]# systemctl start httpd '//开启httpd' [root@squid squid-reports]# systemctl stop firewalld.service '//关闭防火墙' [root@squid squid-reports]# setenforce 04、验证

这里是因为我生成了两个报告所以会显示两条

5、执行周期性计划任务,每天生成报告[root@squid squid-reports]# sarg -l /usr/local/squid/var/logs/access.log -o /var/www/html/squid-reports/ -z -d $(date -d "1 day ago" +%d/%m/%Y)-$(date +%d/%m/%Y)五、squid缓存加速+反向代理

反向代理使用它可以降低原始WEB服务器的负载。反向代理服务器承担了对原始WEB服务器的静态页面的请求,防止原始服务器过载。它位于WEB服务器和Internet之间,处理所有对WEB服务器的请求,组织了WEB服务器和Internet的直接通信。如果互联网用户请求的页面在代理服务器上有缓冲的话,代理服务器直接将缓冲内容发送给用户。如果没有缓冲则先向WEB服务器发出请求,取回数据,本地缓存后再发给用户。这种方式通过降低了WEB服务器的请求数从而降低了WEB服务器的负载。

1、squid服务器设置

关闭httpd服务并设置防火墙规则

[root@squid squid-reports]# systemctl stop httpd '//关闭httpd服务,因为会占用80端口,后面设置代理需要用到80端口' [root@squid squid-reports]# systemctl start firewalld.service [root@squid squid-reports]# iptables -F [root@squid squid-reports]# iptables -t nat -F [root@squid squid-reports]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT2、设置反向代理[root@squid squid-reports]# vim /etc/squid.conf http_port 192.168.110.132:80 accel vhost vport '//监控本机80端口' cache_peer 192.168.110.133 parent 80 0 no-query originserver round-robin max_conn=30 weight=1 name=web1 '//节点服务器1最大访问30,权重1,别名web1' cache_peer 192.168.110.134 parent 80 0 no-query originserver round-robin max_conn=30 weight=1 name=web2 '//节点服务器2最大访问30,权重1,别名web2' cache_peer_domain web1 web2 www.yun.com '//访问www.yun.com匹配web1,web2节点' '重启服务之前检查80端口有没有被占用 如果有的话kill掉进程' [root@squid squid-reports]# service squid restart '//重启服务' 正在关闭 squid... 正在启动 squid... [root@squid squid-reports]# netstat -ntap |grep 80 '//查看80端口是否被squid使用' tcp 0 0 192.168.110.132:80 0.0.0.0:* LISTEN 5197/(squid-1) 3、添加一台web服务器,并设置主页内容4、 client客户端设置域名解析和squid代理并测试

设置域名解析(以administrator用户登录)

C盘-Windows-system32-drivers-etc-hosts

这里要切换管理员账号进行更改文件,不然没权限

更改代理服务器的端口为80

5、验证


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有