六、Squid日志分析
#安装图像处理软件包 yum install -y pcre-devel gd gd-devel #创建目录 mkdir /usr/local/sarg #上传并解压 tar zxvf sarg-2.3.7.tar.gz -C /opt/ cd /opt/sarg-2.3.7 ./configure --prefix=/usr/local/sarg \ --sysconfdir=/etc/sarg \ #配置文件目录,默认是/usr/local/etc --enable-extraprotection #额外安全防护
#修改配置文件 vim /etc/sarg/sarg.conf --7行--取消注释 access_log /usr/local/squid/var/logs/access.log #指定访问日志文件 --25行--取消注释 title "Squid User Access Reports" #网页标题 --120行--取消注释,修改 output_dir /var/www/html/sarg #报告输出目录 --178行--取消注释 user_ip no #使用用户名显示 --184行--取消注释,修改 topuser_sort_field connect reverse #top排序中,指定连接次数采用降序排列,升序是normal --190行--取消注释,修改 user_sort_field connect reverse #对于用户访问记录,连接次数按降序排序 --206行--取消注释,修改 exclude_hosts /usr/local/sarg/noreport #指定不计入排序的站点列表的文件 --257行--取消注释 overwrite_report no #同名同日期的日志是否覆盖 --289行--取消注释,修改 mail_utility mailq.postfix #发送邮件报告命令 --434行--取消注释,修改 charset UTF-8 #指定字符集UTF-8 --518行--取消注释 weekdays 0-6 #top排行的星期周期 --525行--取消注释 hours 0-23 #top排行的时间周期 --633行--取消注释 www_document_root /var/www/html #指定网页根目录
#添加不计入站点文件,添加的域名将不被显示在排序中 touch /usr/local/sarg/noreport #优化路径 ln -s /usr/local/sarg/bin/sarg /usr/local/bin/ #验证 yum install httpd -y systemctl start httpd #运行 sarg #启动一次记录 浏览器访问 http://192.168.109.132/sarg ,查看sarg报告网页。
七、反向代理
如果 Squid 反向代理服务器中缓存了该请求的资源,则将该请求的资源直接返回给客户端;否则反向代理服务器将向后台的 Web 服务器请求资源,然后将请求的应答返回给客户端,同时也将该应答缓存在本地,供下一个请求者使用。
7.1 工作机制
●缓存网页对象,减少重复请求
●将互联网请求轮训或按权重分配到内网Web服务器
●代理用户请求,避免用户直接访问Web服务器,提高安全
7.2 架构图
7.3 配置
实验环境
代理服务器 |
centos7-2 |
192.168.109.132 |
节点服务器1 |
centos7-1 | 192.168.109.131 |
节点服务器2 |
centos7-3 | 192.168.109.133 |
w7 | 192.168.109.200 |
vim /etc/squid.conf ...... --60行--修改,插入 http_port 192.168.109.132:80 accel vhost vport cache_peer 192.168.109.131 parent 80 0 no-query originserver round-robin max_conn=30 weight=1 name=web1 cache_peer 192.168.109.133 parent 80 0 no-query originserver round-robin max_conn=30 weight=1 name=web2 cache_peer_domain web1 web2 www.stevelu.com #表示对www.stevelu.com的请求,squid向192.168.109.131和192.168.109.133的80端口发出请求
1.http_port 80 accel vhost vport #squid从一个缓存变成了一个Web服务器反向代理加速模式,这个时候squid在80端口监听请求,同时和web server的请求端口(vhost vport)绑定,这个时候请求到了squid,squid是不用转发请求的,而是直接要么从缓存中拿数据要么向绑定的端口直接请求数据。
2.accel :反向代理加速模式
3.vhost :支持域名或主机名来表示代理节点
4.vport :支持IP和端口来表示代理节点
5.parent :代表为父节点,上下关系,非平级关系
6.80 :代理内部web服务器的80端口
7.0 :没有使用icp(电信运营商),表示就一台squid服务器
8.no-query :不做查询操作,直接获取数据
9.originserver :指定是源服务器
10.round-robin :指定 squid 通过轮询方式将请求分发到其中一台父节点
11.max_conn :指定最大连接数
12.weight : 指定权重
13.name :设置别名
#清空之前透明模式配置的 iptables 规则 iptables -F iptables -t nat -F #关闭httpd systemctl stop httpd #防止 httpd 服务使用的 80 端口号和 squid 反向代理配置的监听端口冲突 #重启服务 systemctl restart squid #后端节点服务器设置 yum install -y httpd systemctl start httpd #节点1: echo "this is test01" >> /var/www/html/index.html #节点2: echo "this is test02" >> /var/www/html/index.html #客户机的域名映射配置 修改 C:\Windows\System32\drivers\etc\hosts 文件 192.168.109.1 www.stevelu.com 浏览器不开启代理访问 http://www.stevelu.com 查看缓存命中情况 tailf /usr/local/squid/var/logs/access.log 1631164427.547 0 192.168.80.200 TCP_MEM_HIT/200 381 GET http://www.stevelu.com/ - HIER_NONE/- text/html
测试,在客户机中设置本地域名,写入192.168.109.132 www.stevelu.com
此时有缓存在服务器中,刷新很久都在访问节点2,我们关闭节点2
缓存服务器无法体现负载均衡,因为有缓存
总结
这些实验中要注意网关问题
1.代理服务器是什么?
代理服务器是一个位于客户端和原始(资源)服务器之间的服务器,为了从原始服务器取得内容,客户端向代理服务器发送一个请求并指定目标原始服务器,然后代理服务器向原始服务器转交请求并将获得的内容返回给客户端。
2.如何实现代理?
代替客户机向网站请求数据,从而可以隐藏用户的真实IP地址。
将获得的网页数据(静态Web元素)保存到缓存中并发送给客户机,以便下次请求相同的数据时快速响应。
3.有哪些代理方式?
传统代理(正向代理)
透明代理
反向代理