|NO.Z.00018|——————————|^^ 构建 ^^|——|squid缓存/代理服务.V3|——|4台server|
一、搭建squid透明模式:实验拓扑

二、系统硬件规划
### --- 系统硬件规划
~~~ HA-server1:10.10.10.11:Client:模拟客户端
~~~ HA-server2:10.10.10.12:SQUID
~~~ HA-server2:20.20.20.12:SQUID
~~~ HA-server3:20.20.20.13:Apache
三、实验专题:配置squid服务器(依据上述环境继续配置)
### --- 配置squid服务器(依据上述环境继续配置)
### --- 在10.10.10.12下配置
### --- 修改squid的配置文件
[root@server12 ~]# vim /etc/squid/squid.conf
# Squid normally listens to port 3128
http_port 10.10.10.12:3128 transparent // 添加内网地址为:10.10.10.12端口为:3128 通信模式为:transparent模式
visible_hostname www.yanqi.com // 指定当前的主机名称
### --- 重新加载squid服务
### --- 是加载, 重启的话:squid文件系统用的是UFS文件系统,需要退格,
### --- 消耗的时间比较大,建议直接reload
[root@server12 ~]# service squid reload
### --- 设置iptables配置
[root@server12 ~]# service iptables start
iptables: Applying firewall rules: [ OK ]
[root@server12 ~]# chkconfig iptables on
[root@server12 ~]# iptables -F // 清空默认规则
[root@server12 ~]# iptables -t nat -A PREROUTING -i eth0 -s 10.10.10.0/24 -p tcp --dport 80 -j REDIRECT --to-ports 3128
[root@server12 ~]# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
REDIRECT tcp -- 10.10.10.0/24(源) anywhere(任何地方) tcp dpt:http redir ports 3128 //配置已生效
[root@server12 ~]# service iptables save // 保存配置生效
iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
四、验证
### --- 20.20.20.13服务下启动Apache服务
[root@server13 ~]# service httpd start
### --- 10.10.10.11虚拟机下Firefox下的网络代理配置清空
### --- 在10.10.10.11下查看网关是否还是存在(透明模式下必须要指网关的,传统模式下可以不指网关)
[root@server11 ~]# echo "GATEWAY=10.10.10.12" >> /etc/sysconfig/network-scripts/ifcfg-eth0
[root@server11 ~]# service network restart
[root@server11 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.10.10.0 0.0.0.0 255.255.255.0 U 1 0 0 eth0
0.0.0.0 10.10.10.12 0.0.0.0 UG 0 0 0 eth0
### --- 通过命令行的方式在客户端10.10.10.11下访问20.20.20.13地址
~~~ 通过10.10.10.11虚拟中通过Firefox访问 http://20.20.20.13即可获取数据: this is server 1
[root@server11 ~]# curl 20.20.20.13 // 说明可以正常访问了
this is server 1
五、下载限速
### --- 下载限速
### --- 这里的限速不是指限制网络速度,而是单个文件超过多少大小,而不让去访问
### --- 在HA-server3创建一个特定大小的文件
[root@server13 ~]# cd /var/www/html/
[root@server13 html]# dd if=/dev/zero of=1.txt bs=1M count=1024 // if=/dev/zero:空 of=1.txt:输出文件为1.txt bs=1M:单个文件大小为1M count=1024:单个的块大小为1024 //速度是比较慢的,因为1个G的文件
[root@server13 html]# ll -h
total 1.1G
-rw-r--r-- 1 root root 1.0G Jan 22 04:51 1.txt // 查看文件获得一个1G文件
### --- 通过10.10.10.11虚拟主机中通过Firefox访问http://20.20.20.13/1.txt文件,且下载是没有任何问题的
~~~ 通过命令行的模式下载文件,可以正常下载
[root@server11 ~]# wget 20.20.20.13/1.txt
28% [======================================> ] 302,761,825 13.7M/s eta 72s
### --- 现在设置1G的文件太大了,不想让客户端去访问下载这么大的文件
~~~ 默认访问http://20.20.20.13可以访问到主页:this is server 1
~~~ 若是访问http://20.20.20.13/1.txt文件报错ERROR,因为访问文件超过squid代理的最大文件限制。所以不可访问。
[root@server12 ~]# vim /etc/squid/squid.conf
reply_body_max_size 500 MB // 文件大小限制在500MB之内,必须是空格MB,若是不加MB的话,默认是字节为单位
[root@server12 ~]# service squid reload
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
分类:
cdv001-lbchac
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通