首页 > 其他分享 >使用Squid作为反向代理,并进行流量限制

使用Squid作为反向代理,并进行流量限制

时间:2024-12-10 14:21:02浏览次数:4  
标签:Squid 配置 squid 流量 acl delay backend1 反向

前言

Squid是一个比较老的网络转发工具,功能类似于Nginx或者HAProxy(个人理解)。

之所以尝试了Squid是因为Squid原生支持delay_pools可以用来做流控。

正文

目的

有一个后端服务部署在本机http://localhost:10000,需要对该服务做一个带宽限制,所有用户访问的带宽总和为1MB/s。

Squid安装

使用的是centOS7.9,通过yum install squid可以直接安装。

安装完成后可通过systemctl start squid即可启动。

但是此时安装完先不要启动,先进行配置

Delay Pool 说明

Delay Pool代表一个桶,桶有一个初始容量,和每秒补充的容量。

每通过1个字节需要消耗一个桶的容量。

所以一边是客户端不停消耗桶容量,另一边根据桶的容量补充速度,实现了动态的带宽限制。

Squid配置

配置内容如下:

# 定义一个后端访问规则,名为backedn1_acl,这里定义为域名backend1.example.com
acl backend1_acl dstdomain backend1.example.com
http_access allow backend1_acl

# 定义一个后端的服务,在本机10000端口上,别名是backend1
cache_peer localhost parent 10000 0 no-query originserver name=backend1
# 将backedn1_acl流量配置到backend1后端上
cache_peer_access backend1 allow backend1_acl
cache_peer_access backend1 deny all

# 创建一个delay pool
delay_pools 1

# Delay Pool 配置,标识1号pool采用2类限流配置
delay_class 1 2
# 限流单位为字节,格式为 [每秒重新填充的容量]/[最大容量],这里每秒条虫1024*1000 Byte,差不多是1MB/s
# 后一个none其实也可以限制,是限制的每个链接的单独的桶
# 也就是说既可以控制总的带宽,也可以控制每个连接使用的带框
delay_parameters 1 1024000/2024000 none
#配置访问权限
delay_access 1 allow backend1_acl
delay_access 1 deny all

# 拒绝其他进入的流量
http_access deny all


# 使用80端口作为对外端口
# accel表示作为反向代理
# vhost表示使用请求的Host头作为选择后端服务的Host
http_port 80 accel vhost

# 缓存文件
cache_dir ufs /etc/squid/logs 100 16 256

# coredump文件
coredump_dir /var/spool/squid

# 日志格式
logformat squid %{%d %H:%M:%S}tl %6tr %>a %Ss/%03>Hs %<st %rm %ru "%{Referer}>h" "%{User-Agent}>h" %mt

配置完成后重启squid服务:

systemctl restart squid

功能验证

需要预先配置好host文件,在/etc/hosts中增加一条

[本机ip] backend1.example.com

通过curl可测试限速效果(注意,这里要求原本后端localhost:10000可提供test.txt大文件的下载,否则请求一下就结束了,速度不准确)

curl http://backend1.example.com/test.txt > /dev/null

也可以尝试修改配置中delay_parameters 1 1024000/2024000 none限速配置,调整大小,或配置为none,重新测试。

注意重新测试前,需要重新启动squid服务,以加载配置

遗留问题

配置中1024000/2024000,前一个是填充速度,后一个是容量。

测试发现如果填充速度和容量相等时,理论上应该带宽就是填充速度,但测试只有实际的一半左右。

增加桶的总容量可以缓解这一问题,但是具体原理不太清楚

标签:Squid,配置,squid,流量,acl,delay,backend1,反向
From: https://www.cnblogs.com/mosakashaka/p/18597278

相关文章

  • 如何在网站中添加流量统计代码
    为了在网站中添加流量统计代码(如GoogleAnalytics、百度统计等),您可以按照以下步骤进行操作。这里以使用插件的方式为例,具体步骤如下:使用插件添加流量统计代码安装工具箱插件:如果您使用的是WordPress或其他支持插件的CMS,首先需要安装一个代码注入插件。常见的插件包括:W......
  • 人流量监测识别摄像机
    人流量监测识别摄像机是一种基于人工智能技术的智能监控设备,其主要功能是通过摄像头捕捉实时画面,利用深度学习算法对画面中的人数进行实时识别和统计。这种摄像机可以广泛应用于各种场合,如商场、车站、学校、医院等公共场所,以及工厂、仓库等生产环境中,帮助管理者更好地了解实时人......
  • 什么是反向代理?作用、原理和实例详解
    ......
  • 跨境电商年终:抓住最后的节假日营销流量!
    黑五网一已经告一段落,但圣诞节和新年即将到来。电商卖家要根据节假日活动继续调整营销策略,因为还有不少消费者存在节假日和相关活动的消费需求。而且,面向不同的国家和地区的市场时,还要把当地节日考虑在内,这也增加了营销机会和流量。要抓住一年中最后的节假日流量,可以参考以下......
  • 跨境电商年终:抓住最后的节假日营销流量!
    黑五网一已经告一段落,但圣诞节和新年即将到来。电商卖家要根据节假日活动继续调整营销策略,因为还有不少消费者存在节假日和相关活动的消费需求。而且,面向不同的国家和地区的市场时,还要把当地节日考虑在内,这也增加了营销机会和流量。要抓住一年中最后的节假日流量,可以参考以下......
  • 网络安全:传统防火墙和流量牵引技术的区别
    在互联网行业快速发展的时代中,网络安全也不容忽视,网络安全领域当中,流量牵引技术和传统防火墙都起着十分重要的作用,下面我们就来了解一下流量牵引技术和传统防火墙之间都有着哪些区别吧!传统防火墙在配置方面是相对比较固定的,当访问控制规则设置好后,不怎么好进行更改,难以快速适......
  • 2022-DIDCTF:流量取证
    做流量取证的时候第一次接触了一点web知识,所以这里我会直接贴出涉及到知识点我所搜到文章,一起学习一起进步DIDCTF:DIDCTF题目1:分析检材1,黑客的IP地址是检材1拖进wireshark里,然后过滤http然后从下往上翻或者设置排序,然后去post请求这里关于这些post和其他的http的请求方式......
  • 什么是南北向流量和东西向流量?
    在云计算和微服务架构中,南北向流量和东西向流量是两种常见的流量模式。南北向流量(North-SouthTraffic)定义:南北向流量指的是从外部进入系统内部或从系统内部出去的流量,通常是客户端到服务器之间的通信,例如用户通过浏览器或移动应用访问Web服务或API。特点:这种流量穿过系统的......
  • Python、R循环神经网络RNN、指数平滑ETS、ARIMA模型预测网络流量、ATM机取款、旅游需
    全文链接:https://tecdat.cn/?p=38496原文出处:拓端数据部落公众号分析师:PengyuanWen 在当今经济研究与商业决策领域,精准的时间序列预测具有极为关键的意义。社会消费品零售总额作为反映人民消费水平以及国民经济状况的核心指标,其发展趋势的精准把握对中国经济高质量发展转型意......
  • SEO优化:提升网站排名与流量的关键策略
    在当今数字化时代,搜索引擎优化(SEO)已成为企业网站不可或缺的一部分。通过精心策划和执行SEO策略,企业可以显著提升其在搜索引擎结果页面(SERP)上的排名,从而吸引更多潜在客户,提高品牌知名度和在线可见性。本文将深入探讨SEO优化的重要性、核心要素以及实施策略,帮助您更好地理解并应......