Web缓存服务——Squid代理服务器应用(中)

本文涉及的产品
云防火墙,500元 1000GB
日志服务 SLS,月写入数据量 50GB 1个月
简介: 正向代理:代替客户端向服务端发送请求。反向代理:代理服务端,将请求转发给多个服务端。


四、构建透明代理服务器(代理服务器作为网关服务器)


透明代理的要求:

  • 要求代理服务器是网关服务器。
  • 网关服务器至少双网卡,开启路由转发功能。
  • 防火墙iptables/firewalld 设置重定向规则。

实验环境:

Squid服务器:内网ens33:192.168.72.70/24 ,外网ens36:12.0.0.254/24

Web 服务器:12.0.0.12/24

客户机:192.168.72.50/24

网络异常,图片无法展示
|


实验步骤:

-----1、Squid服务器配置-----
 [root@yuji ~]# vim /etc/squid.conf       #编辑配置文件
 ......
 http_access allow all
 http_access deny all
 #--60行--修改添加提供内网服务的IP地址,和支持透明代理选项 transparent
 http_port 192.168.72.70:3128 transparent  
 #填写对接客户端网段的网卡地址,即内网卡地址。监听自己内网网卡的地址,并支持透明代理选项 transparent
 [root@yuji ~]# systemctl restart squid    #重启squid服务
 #开启路由转发,实现本机中不同网段的地址转发
 [root@yuji ~]# echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf
 [root@yuji ~]# sysctl -p
 #修改防火墙规则,设置重定向规则
 [root@yuji ~]# iptables -F
 [root@yuji ~]# iptables -t nat -F
 #用于转发http协议。80端口重定向到3128端口,由代理服务器进行请求
 [root@yuji ~]# iptables -t nat -A PREROUTING -i ens33 -s 192.168.72.0/24 -p tcp --dport 80 -j REDIRECT --to 3128
 #用于转发https协议。443端口重定向到3128端口,由代理服务器进行请求
 [root@yuji ~]# iptables -t nat -A PREROUTING -i ens33 -s 192.168.72.0/24 -p tcp --dport 443 -j REDIRECT --to 3128
 #接受tcp协议的3128端口传入的数据
 [root@yuji ~]# iptables -A INPUT -p tcp --dport 3128 -j ACCEPT  
 -----2、Web服务器配置-----
 [root@web1 ~]# systemctl stop firewalld
 [root@web1 ~]# setenforce 0
 [root@web1 ~]# yum install -y httpd
 [root@web1 ~]# systemctl start httpd
 [root@web1 ~]# echo "tt is a girl" > /var/www/html/index.html
 -----3、客户机配置,修改网关地址,浏览器不使用代理-----
 网关地址修改为代理服务器的内网网卡地址:192.168.72.70
 关闭客户机的浏览器之前设置的代理服务器的功能后,访问 http://12.0.0.12
 #查看 Squid 访问日志的新增记录
 [root@yuji ~]# tail -f /usr/local/squid/var/logs/access.log
 1654584356.658    231 192.168.72.50 TCP_MISS/200 290 GET http://detec tportal.firefox.com/success.txt - ORIGINAL_DST/34.107.221.82 text/pla in      #第一次访问未命中缓存
 1654584383.003      0 192.168.72.50 TCP_MEM_HIT/200 341 GET http://12 .0.0.12/ - HIER_NONE/- text/html   #第二次访问命中缓存
 #查看 Web 访问日志的新增记录,显示的是由代理服务器的外网口代替客户机在访问
 [root@web1 ~]# tail -f /var/log/httpd/access_log
复制代码


3.1 Squid服务器配置:

网络异常,图片无法展示
|


网络异常,图片无法展示
|


网络异常,图片无法展示
|


网络异常,图片无法展示
|


3.2 Web服务器安装apache:

网络异常,图片无法展示
|


网络异常,图片无法展示
|


3.3 客户机配置,修改网关地址,浏览器不使用代理:

网络异常,图片无法展示
|


关闭客户机的浏览器之前设置的代理服务器的功能后,访问 http://12.0.0.12

网络异常,图片无法展示
|


网络异常,图片无法展示
|


3.4 查看 Squid 访问日志的新增记录:

网络异常,图片无法展示
|


3.5 查看 Web 访问日志的新增记录:

显示的是由代理服务器的外网口代替客户机在访问。

客户机命中缓存后,web服务器不生成访问记录,因为是由缓存服务器直接返回结果,不会向web服务器发送请求。

网络异常,图片无法展示
|


五、ACL访问控制


在配置文件 squid.conf 中,ACL 访问控制通过以下两个步骤来实现:

(1)使用 acl 配置项定义需要控制的条件;

(2)通过 http_access 配置项对已定义的列表做“允许”或“拒绝”访问的控制。

定义访问控制列表:

格式:
 acl 列表名称 列表类型 列表内容 …
复制代码


5.1 ACL配置说明

1、编辑配置文件,定义控制访问列表
 [root@yuji ~]#vim /etc/squid.conf
 ......
 acl localhost src 192.168.72.50/32              #客户机源地址为 192.168.72.50
 acl MYLAN src 192.168.72.0/24 192.168.1.0/24    #客户机网段
 acl destinationhost dst 192.168.72.60/32        #目标地址为 192.168.72.60
 acl MC20 maxconn 20                             #最大并发连接 20
 acl PORT port 21                                #目标端口 21
 acl DMBLOCK dstdomain .qq.com                   #目标域,匹配域内所有站点
 acl BURL url_regex -i ^rtsp:// ^emule://    #以 rtsp://、emule:// 开头的目标 URL地址,-i表示忽略大小写。匹配正则表达式
 acl PURL urlpath_regex -i .mp3$ .mp4$ .rmvb$     #以 .mp3、.mp4、.rmvb 结尾的目标 URL 路径
 acl WORKTIME time MTWHF 08:30-17:30              #时间为周一至周五 8:30~17:30,“MTWHF”为周一至周五的英文首字母
 http_access deny(或allow) destinationhost  #注意,如果是拒绝列表,需要放在http_access allow all前面
 2、重启服务
 [root@yuji ~]#systemctl restart squid
 3、使用客户机192.168.72.50进行访问
 浏览器访问Web服务器 http://192.168.72.60,显示被访问被拒绝。
 ----------------- # 启动对象列表管理 #--------------
 #如果需要管理的地址很多,可以将多个地址先写在一个文件里
 #启动对象列表管理
 mkdir /etc/squid
 vim /etc/squid/dest.list    #写一个地址管理列表
 192.168.72.50
 192.168.1.0/24
 #编辑配置文件
 vim /etc/squid.conf        
 ......
 acl destinationhost dst "/etc/squid/dest.list"  #调用指定文件中的列表内容
 ......
 http_access deny(或allow) destinationhost  #注意,如果是拒绝列表,需要放在http_access allow all前面
复制代码


5.2 ACL访问控制操作实例

1、编辑配置文件,定义控制访问列表
 [root@yuji ~]# vim /etc/squid.conf
 ......
  25 acl CONNECT method CONNECT
  26 acl myhost src 192.168.72.50/32   #定义列表名称为myhost,源址为192.168.72.50
  27
  28 http_access deny myhost           #拒绝myhost列表中的地址进行访问
  #注意,拒绝列表需要放在http_access allow all前面
 2、重启squid服务
 [root@yuji ~]# systemctl restart squid
 3、使用客户机192.168.72.50进行访问
 浏览器访问Web服务器 http://12.0.0.12,显示被访问被拒绝。
复制代码


网络异常,图片无法展示
|


网络异常,图片无法展示
|


使用客户机192.168.72.50,浏览器访问Web服务器 http://12.0.0.12,显示被访问被拒绝。

网络异常,图片无法展示
|

目录
打赏
0
0
0
0
12
分享
相关文章
破茧成蝶:阿里云应用服务器让传统 J2EE 应用无缝升级 AI 原生时代
本文详细介绍了阿里云应用服务器如何助力传统J2EE应用实现智能化升级。文章分为三部分:第一部分阐述了传统J2EE应用在智能化转型中的痛点,如协议鸿沟、资源冲突和观测失明;第二部分展示了阿里云应用服务器的解决方案,包括兼容传统EJB容器与微服务架构、支持大模型即插即用及全景可观测性;第三部分则通过具体步骤说明如何基于EDAS开启J2EE应用的智能化进程,确保十年代码无需重写,轻松实现智能化跃迁。
290 41
构建高性能图像处理Web应用:Next.js与TailwindCSS实践
本文分享了构建在线图像黑白转换工具的技术实践,涵盖技术栈选择、架构设计与性能优化。项目采用Next.js提供优秀的SSR性能和SEO支持,TailwindCSS加速UI开发,WebAssembly实现高性能图像处理算法。通过渐进式处理、WebWorker隔离及内存管理等策略,解决大图像处理性能瓶颈,并确保跨浏览器兼容性和移动设备优化。实际应用案例展示了其即时处理、高质量输出和客户端隐私保护等特点。未来计划引入WebGPU加速、AI增强等功能,进一步提升用户体验。此技术栈为Web图像处理应用提供了高效可行的解决方案。
Go语言Web开发框架实践:使用 Gin 快速构建 Web 服务
Gin 是一个高效、轻量级的 Go 语言 Web 框架,支持中间件机制,非常适合开发 RESTful API。本文从安装到进阶技巧全面解析 Gin 的使用:快速入门示例(Hello Gin)、定义 RESTful 用户服务(增删改查接口实现),以及推荐实践如参数校验、中间件和路由分组等。通过对比标准库 `net/http`,Gin 提供更简洁灵活的开发体验。此外,还推荐了 GORM、Viper、Zap 等配合使用的工具库,助力高效开发。
从零(服务器、域名购买)开始搭建雷池WAF到应用上线简明指南
本文详细介绍了基于雷池WAF的网站防护部署全流程,涵盖服务器与域名准备、WAF安装配置、网站接入设置及静态文件站点搭建等内容。通过最低1核CPU/1GB内存的服务器配置,完成Docker环境搭建、雷池一键安装及端口设置,实现域名解析、SSL证书配置和防护策略优化。同时支持301重定向与HTTP到HTTPS自动跳转,确保访问安全与规范。最后还提供了使用静态文件搭建网站的方法,帮助用户快速构建具备基础WAF防护能力的网站系统。
从零(服务器、域名购买)开始搭建雷池WAF到应用上线简明指南
Web端实时通信技术SSE在携程机票业务中的实践应用
本文介绍了携程机票前端基于Server-Sent Events(SSE)实现服务端推送的企业级全链路通用技术解决方案。文章深入探讨了 SSE 技术在应用过程中包括方案对比、技术选型、链路层优化以及实际效果等多维度的技术细节,为类似使用场景提供普适性参考和借鉴。
63 7
|
3月前
|
Golang | Gin:net/http与Gin启动web服务的简单比较
总的来说,`net/http`和 `Gin`都是优秀的库,它们各有优缺点。你应该根据你的需求和经验来选择最适合你的工具。希望这个比较可以帮助你做出决策。
102 35
购买阿里云服务器选择应用镜像和系统镜像区别,哪个好?
在阿里云购买服务器时,选择应用镜像还是系统镜像需根据需求与技术能力决定。应用镜像适合快速部署、无需环境配置的场景,如建站或测试;系统镜像则提供更高灵活性,适合自定义开发和企业级服务。两者各有优劣:应用镜像操作简单但版本可能较旧,系统镜像可控性强但需手动配置。建议新手优先使用应用镜像,技术用户可选系统镜像以优化性能。
破茧成蝶:阿里云应用服务器让传统J2EE应用无缝升级AI原生时代
一场跨越20年的技术对话:在杭州某科技园的会议室里,一场特殊的代码评审正在进行。屏幕上同时展示着2005年基于WebLogic开发的供应链系统和2025年接入DeepSeek大模型的智能调度方案——令人惊叹的是,二者的核心业务代码竟保持着惊人的一致性。"我们保住了20年积累的238个核心业务对象,就像修复传世名画时保留了每一笔历史痕迹。"企业CTO的感慨,揭开了阿里云应用服务器助力传统系统智能化转型的奥秘。
90 13
时钟校准服务器在实际应用中的介绍
时钟校准服务器是一种用于时间同步的设备,通过接收北斗、GPS等标准时间信号,为分布式系统提供统一的时间标度。它广泛应用于通信、电力、金融、交通等领域,确保各模块本地时钟的一致性。随着科技发展,国产时钟服务器已实现高精度授时与国产化替代,如我司生产的SYN2136型北斗NTP网络时间服务器,支持双模授时、冗余备份和毫秒级精度。相比传统钟表,现代时钟校准设备具备高精度、自动调节和远程管理优势,满足科研及特殊机构需求。我司作为国家高新技术企业,拥有核心技术与多项专利,以互联网思维优化产品性价比,推动时间同步技术的发展。文章版权归西安同步所有,严禁洗稿或未经授权转载。
GPTP时钟授时服务器应用介绍、GPTP时钟、GPTP授时服务器、Gptp时钟
GPTP时钟基于IEEE 802.1AS标准,用于时间敏感网络中的高精度时间同步。系统包含主时钟(如SYN2413型PTP主时钟)和从时钟,通过绝对与相对时间同步实现全网一致性。其工作原理涉及硬件时间戳采样、P2P路径延时测量等技术,确保ns级精度。广泛应用于汽车(自动驾驶、V2X通信)、工业自动化(生产流水线、过程控制)、通信(5G网络、光通信)及智能交通(车路协同、轨道交通)等领域,保障实时性与安全性。文章版权归西安同步所有,严禁侵权。

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问