部署Squid代理服务器 —— 反向代理(acl 访问控制 、sarg 日志分析、 Squid反向代理) —— 再续前缘..

部署Squid代理服务器 —— 反向代理

前言

部署 Squid 代理服务的正向代理,咱们已经实现
可以参考前文 Squid ---- 正向代理

下面将实现 acl 访问控制 、sarg 日志分析 以及 Squid的反向代理

部署前规划

数量操作系统服务器ip地址
1centos7.4版本squid20.0.0.101 ;192.168.100.1
1centos7.4版本web20.0.0.102
1centos7.4版本web220.0.0.103
1windows客户端192.168.100.10
  • squid服务器为双网卡ens33为20.0.0.101;ens36冲当网关为192.168.100.1

  • 关闭防火墙、核心防护

  • squid服务器上做
    vi /etc/sysctl.conf
    net.ipv4.ip_forward=1

    iptables -I INPUT -p tcp --dport 3128 -j ACCEPT(注意要清空防火墙规则)

  • web、web2服务器上做
    route add -net 192.168.100.0/24 gw 20.0.0.101
    安装httpd;并开启

  • 四台服务器能相互ping通

  • 前置环境请参考前文

acl 访问控制

  • 测试前
    在这里插入图片描述

  • 在squid服务器上(20.0.0.101)

vim /etc/squid.conf

acl hostlocal src 192.168.100.10/32        ####第7行下,添加
http_access deny hostlocal             ###31行下,添加

service squid reload

然后去windows客户端测试,清空网页缓存,设置网页代理地址,重新登网页输入 20.0.0.101 ;会显示拒绝连接
  • acl控制访问后
    在这里插入图片描述

sarg 日志分析

  • 在squid服务器上(20.0.0.101)
先得把之前做的acl访问控制要删除,要不然连网页都访问不了

1、将安装包上传至家目录并解压
tar zxvf sarg-2.3.7.tar.gz
cd sarg-2.3.7/

2、安装组件gd库
yum -y install gd gd-devel              ###图像处理

3、创建工作目录
mkdir /usr/local/sarg

4、安装配置

./configure --prefix=/usr/local/sarg \
--sysconfdir=/etc/sarg \
--enable-extraprotection

make -j4
make install


5、修改配置文件
cd /etc/sarg

cp sarg.conf sarg.conf.bak             ####备份文件
 
vim sarg.conf

---------------------------------------------------------------------------7行: access_log /usr/local/squid/var/logs/access.log            ###指定访问日志文件

第25行: title "Squid User Access Reports"             ###网页标题

第120行: output_dir /var/www/html/squid-reports          ###报告输出目录

第178行: user_ip no                 ####使用用户名显示

第206行: exclude_hosts /usr/local/sarg/noreport              ####不计入排序的站点列表文件(需要创建这个文件)

第184行: topuser_sort_field connect reverse            ###top排序中有连接次数、访问字节、降序排列 升序是normal(BYTES 修改为 connect)

第190行: user_sort_field reverse              ###用户访问记录、连接次数、访问字节按降序排序(BYTES意思为设定,去掉,要不然报错)

第257行: overwrite_report no            ###同名日志是否覆盖

第289行: mail_utility mailq.postfix           ###发送邮件报告命令(将 mailx 修改为 mailq.postfix)

第434行: charset UTF-8            ###使用字符集(将 Latin1 改为 UTF-8)

第518行: weekdays 0-6            ###top排序的星期周期

第525行: hours 0-23           ###top排序的时间周期

第633行: www_document_root /var/www/html          ###网页根目录
--------------------------------------------------------------------------------------

grep -v "^#" sarg.conf           ###验证文件,开启项全部会显示出来


6、创建添加不计入站点文件(第206行那个需要创建的文件),添加的域名将不被显示在排序中,并做优化
touch /usr/local/sarg/noreport

ln -s /usr/local/sarg/bin/sarg /usr/local/bin


7、先去 /etc/sarg/sarg.conf 文件中关闭 190行,在启动 sarg 就会生成报告
vim /etc/sarg/sarg.conf
第190行,加#号

sarg

显示:
SARG: Records in file:226,reading: 100.00%
SARG: Successful report generated on /var/www/html/squid-reports/2019Dec05-2019Dec05


8、安装httpd
cd /var/www/html/squid-reports/               ###会有生成的报告

yum -y insatll httpd             ###rpm -q httpd  可以过滤下看看有没有

systemctl start httpd

ls /var/www/html/            ###显示squid-reports ,等下访问网页要在地址 后面添加/squid-reports


9、去windows客户端 网页输入: http://192.168.100.1/squid-reports      ;如果显示无法访问,尝试关闭防火墙
你就会看到sarg 日志统计的页面

在这里插入图片描述

###(crontab)周期性计划任务执行每天生成的报告(输出这个任务报告就是当天(24小时)的任务报告)
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)


然后重登windows客户端   网页输入:   http://192.168.100.1/squid-reports/index.html      就会多出一条任务报告

在这里插入图片描述

反向代理

  • 在 web 服务器上(20.0.0.102)
做网页区分
cd /var/www/html

vim index.html

<h1>this is web1</h1>

测试一下 网页输入: 20.0.0.102      显示 this is web1

在这里插入图片描述

  • 在 squid 服务器上
1、清理squid服务器的防火墙规则
systemctl start firewalld

iptables -F
iptables -t nat -F

iptables -I INPUT -p tcp --dport 3128 -j ACCEPT

2、建立反向代理:
vim /etc/squid.conf              ###添加以下4行

修改60行: http_port 20.0.0.101:80 accel vhost vport                   ####定义到自己的ip端口访问虚拟主机,虚拟端口
cache_peer 20.0.0.102 parent 80 0 no-query originserver round-robin max_conn=30 weight=1 name=web1
cache_peer 20.0.0.103 parent 80 0 no-query originserver round-robin max_conn=30 weight=1 name=web2
cache_peer_domain web1 web2 www.kao.com


service squid restart
  • 在 web2 服务器(20.0.0.103)
hostnamectl set-hostname web2

systemctl stop firewalld
setenforce 0

yum -y install httpd
systemctl start httpd

cd /var/www/html
vim index.html

<h1>this is web2</h1>

route add -net 192.168.100.0/24 gw 20.0.0.101

测试下,网页输入:20.0.0.103      显示this is web2

在这里插入图片描述

  • 做域名测试
###去squid服务器上调换接口对象
systemctl stop httpd
netstat -anpt | grep 80            ###显示没有;端口关闭
service squid stop
service squid start
netstat -anpt | grep 80            ####这时候80端口httpd换成了squid

###然后在windows客户端 做主机映射(必须得是root账户能设置)
如果不是root用户先设置 :我的电脑(右击)----> 管理 ----> 本地用户和组 ----> Administrator(双击取消账户禁用;右击设置密码,选继续,*****----> 切换用户
找到 :C/Windows/system32/drivers/etc/hosts   :   20.0.0.101     www.kao.com
 网页上设置代理 :20.0.0.101     80

###在访问 www.kao.com     轮询显示 this is web1 、this is web2

在这里插入图片描述
在这里插入图片描述
———————————————————————————————————

关于 Squid代理服务器 到此结束 ,并不复杂,前置环境很重要,注意是否开放端口,是否启动服务,理解其中原理,仔细一些并不难。

感谢浏览~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值