HAProxy-ACL实战篇
HAProxy-ACL实战篇
IP | 说明 |
---|---|
172.25.254.101 | 客户端 |
172.25.254.102 | haproxy服务器 |
172.25.254.103 | web1 |
172.25.254.104 | web2 |
ACL示例-域名匹配
# 172.25.254.102
[root@Rocky ~]# cat /etc/haproxy/conf.d/test.cfg
frontend magedu_http_portbind 172.25.254.102:80mode httpbalance roundrobinlog globaloption httplog###################### acl setting ###############################acl pc_domain hdr_dom(host) -i www.magedu.orgacl mobile_domain hdr_dom(host) -i mobile.magedu.org###################### acl hosts #################################use_backend pc_hosts if pc_domainuse_backend mobile_hosts if mobile_domaindefault_backend pc_hosts###################### backend hosts #############################
backend mobile_hostsmode httpserver web1 172.25.254.103:80 check inter 2000 fall 3 rise 5backend pc_hostsmode httpserver web2 172.25.254.104:80 check inter 2000 fall 3 rise 5
测试结果:
# 172.25.254.101
[root@Rocky ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
172.25.254.102 mobile.magedu.org www.magedu.org magedu.org[root@Rocky ~]# curl www.magedu.org
172.25.254.104
[root@Rocky ~]# curl mobile.magedu.org
172.25.254.103
[root@Rocky ~]# curl magedu.org
172.25.254.104
ACL示例-基于源IP或子网调度访问
将指定的源地址调度至指定的web服务器组。
root@Rocky7 ~]#cat /etc/haproxy/conf.d/test.cfg
frontend magedu_http_portbind 172.25.254.102:80mode httpbalance roundrobinlog globaloption httplog###################### acl setting ###############################acl pc_domain hdr_dom(host) -i www.magedu.orgacl mobile_domain hdr_dom(host) -i mobile.magedu.orgacl ip_range_test src 172.25.0.0/16 10.0.0.6###################### acl hosts #################################use_backend pc_hosts if ip_range_test #放在第一行优先生效use_backend pc_hosts if pc_domainuse_backend mobile_hosts if mobile_domaindefault_backend pc_hosts ###################### backend hosts #############################
backend mobile_hostsmode httpserver web1 172.25.254.103 check inter 2000 fall 3 rise 5backend pc_hostsmode httpserver web2 172.25.254.104:80 check inter 2000 fall 3 rise 5
测试结果
[root@Rocky ~]# hostname -I
172.25.254.101
[root@Rocky ~]# curl www.magedu.org
172.25.254.104
[root@Rocky ~]# curl mobile.magedu.org
172.25.254.104
[root@Rocky ~]# curl magedu.org
172.25.254.104
[root@Rocky ~]# curl mobile.magedu.org
172.25.254.104
ACL示例-基于源地址的访问控制
拒绝指定IP或者IP范围访问
listen web_hostbind 172.25.254.102:80mode httpbalance roundrobinlog globaloption httplog###################### acl setting ###############################acl acl_deny_src src 172.25.254.101 192.168.0.0/24###################### acl hosts ##################################block if acl_deny_srchttp-request deny if acl_deny_src #2.1版本后,不再支持block#http-request allowdefault_backend default_web
###################### backend hosts #############################
backend magedu_hostmode httpserver web1 172.25.254.103 check inter 2000 fall 3 rise 5backend default_webmode httpserver web1 172.25.254.104:80 check inter 2000 fall 3 rise 5
测试:
[root@Rocky ~]# hostname -I
172.25.254.101
[root@Rocky ~]# curl mobile.magedu.org
<html><body><h1>403 Forbidden</h1>
Request forbidden by administrative rules.
</body></html>
[root@Rocky ~]# curl www.magedu.org
<html><body><h1>403 Forbidden</h1>
Request forbidden by administrative rules.
</body></html>
ACL示例-匹配浏览器类型
匹配客户端浏览器,将不同类型的浏览器调动至不同的服务器组
[root@Rocky7 ~]#cat /etc/haproxy/conf.d/test.cfg
frontend magedu_http_portbind 172.25.254.102:80mode httpbalance roundrobinlog globaloption httplog
###################### acl setting ###############################acl acl_user_agent hdr_sub(User-Agent) -i curl wgetacl acl_user_agent_ab hdr_sub(User-Agent) -i ApacheBench###################### acl hosts #################################redirect prefix http://10.0.0.8 if acl_user_agent #301临时重定向至新URLhttp-request deny if acl_user_agent_ab #拒绝abdefault_backend pc_hosts
###################### backend hosts #############################
backend mobile_hostsmode httpserver web1 172.25.254.103 check inter 2000 fall 3 rise 5backend pc_hostsmode httpserver web2 172.25.254.104:80 check inter 2000 fall 3 rise 5
范例:
[root@Rocky ~]# curl -I 172.25.254.102
HTTP/1.1 302 Found
content-length: 0
location: http://10.0.0.8/
cache-control: no-cache#模拟ab
[root@Rocky ~]# dnf install httpd-tools
[root@Rocky ~]# ab -n1 -c 1 http://172.25.254.102/
This is ApacheBench, Version 2.3 <$Revision: 1843412 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/Benchmarking 172.25.254.102 (be patient).....doneServer Software:
Server Hostname: 172.25.254.102
Server Port: 80Document Path: /
Document Length: 93 bytesConcurrency Level: 1
Time taken for tests: 0.002 seconds
Complete requests: 1
Failed requests: 0
Non-2xx responses: 1
Total transferred: 208 bytes
HTML transferred: 93 bytes
Requests per second: 631.31 [#/sec] (mean)
Time per request: 1.584 [ms] (mean)
Time per request: 1.584 [ms] (mean, across all concurrent requests)
Transfer rate: 128.24 [Kbytes/sec] receivedConnection Times (ms)min mean[+/-sd] median max
Connect: 1 1 0.0 1 1
Processing: 1 1 0.0 1 1
Waiting: 1 1 0.0 1 1
Total: 2 2 0.0 2 2#haproxy日志提示403
[root@Rocky ~]# tail /var/log/haproxy.log
Apr 5 21:04:29 localhost haproxy[2734]: 172.25.254.101:43712 [05/Apr/2025:21:04:29.985] magedu_http_port magedu_http_port/<NOSRV> 0/-1/-1/-1/0 403 192 - - PR-- 1/1/0/0/0 0/0 "GET / HTTP/1.1"
Apr 5 21:06:07 localhost haproxy[2734]: 172.25.254.101:57236 [05/Apr/2025:21:06:07.680] magedu_http_port magedu_http_port/<NOSRV> 0/-1/-1/-1/0 403 192 - - PR-- 1/1/0/0/0 0/0 "GET / HTTP/1.0"
ACL示例-基于文件后缀名实现动静分离
[root@Rocky7 ~]#cat /etc/haproxy/conf.d/test.cfg
frontend magedu_http_portbind 172.25.254.102:80mode httplog globaloption httplog
###################### acl setting ###############################acl acl_static path_end -i .jpg .jpeg .png .gif .css .jsacl acl_php path_end -i .php
###################### acl hosts #################################use_backend mobile_hosts if acl_staticuse_backend app_hosts if acl_phpdefault_backend pc_hosts
###################### backend hosts #############################
backend mobile_hostsmode httpserver web1 172.25.254.103:80 check inter 2000 fall 3 rise 5backend pc_hostsmode httpserver web2 172.25.254.104:80 check inter 2000 fall 3 rise 5backend app_hostsmode httpserver web2 172.25.254.104:80 check inter 2000 fall 3 rise 5#分别在后端两台主机准备相关文件
# 172.25.254.103
[root@Rocky ~]# cd /usr/share/nginx/html
[root@Rocky html]# ll
total 368
-rw-r--r--. 1 root root 3332 Jun 10 2021 404.html
-rw-r--r--. 1 root root 3404 Jun 10 2021 50x.html
-rw-r--r--. 1 root root 351773 Apr 5 21:12 a.jpg
-rw-r--r--. 1 root root 16 Apr 5 20:21 index.html
-rw-r--r--. 1 root root 81 Feb 27 18:56 index.htmlmkdir
-rw-r--r--. 1 root root 368 Jun 10 2021 nginx-logo.png
-rw-r--r--. 1 root root 1800 Jun 10 2021 poweredby.png
# 172.25.254.104
[root@Rocky ~]# cd /usr/share/nginx/html/
[root@Rocky html]# ll
total 24
-rw-r--r--. 1 root root 3332 Jun 10 2021 404.html
-rw-r--r--. 1 root root 3404 Jun 10 2021 50x.html
-rw-r--r--. 1 root root 15 Apr 5 20:24 index.html
-rw-r--r--. 1 root root 368 Jun 10 2021 nginx-logo.png
-rw-r--r--. 1 root root 1800 Jun 10 2021 poweredby.png
-rw-r--r--. 1 root root 59 Apr 5 21:15 test.php
[root@Rocky html]# cat test.php
<?php
echo "<h1>http://172.25.254.104/test.php</h1>\n";
?>
ACL-匹配访问路径实现动静分离
[root@Rocky7 ~]#cat /etc/haproxy/conf.d/test.cfg
frontend magedu_http_portbind 172.25.254.102:80mode httpbalance roundrobinlog globaloption httplog
###################### acl setting ###############################acl acl_static path_beg -i /static /images /javascriptacl acl_static path_end -i .jpg .jpeg .png .gif .css.js###################### acl hosts #################################use_backend static_hosts if acl_staticdefault_backend app_hosts
###################### backend hosts #############################
backend static_hostsmode httpserver web1 172.25.254.103:80 check inter 2000 fall 3 rise 5backend app_hostsmode httpserver web2 172.25.254.104:80 check inter 2000 fall 3 rise 5#创建相关文件
#172.25.254.103
[root@Rocky html]# mkdir /usr/share/nginx/html/static
[root@Rocky html]# echo 172.25.254.103 > /usr/share/nginx/html/static/test.html#测试访问
[root@Rocky ~]# curl 172.25.254.102/static/test.html
172.25.254.103
ACL示例-预定义ACL使用
官方帮助文档:http://cbonte.github.io/haproxy-dconv/2.1/configuration.html#7.4
预定义ACL
ACL name | Equivalent to | Usage |
---|---|---|
FALSE | always_false | never match |
HTTP | req_proto_http | match if protocol is valid HTTP |
HTTP_1.0 | req_ver 1.0 | match HTTP version 1.0 |
HTTP_1.1 | req_ver 1.1 | match HTTP version 1.1 |
HTTP_CONTENT | hdr_val(content-length) gt 0 | match an existing content-length |
HTTP_URL_ABS | url_reg [/:]*😕/ | match absolute URL with scheme |
HTTP_URL_SLASH | url_beg / | match URL beginning with “/” |
HTTP_URL_STAR | url * | match URL equal to “*” |
LOCALHOST | src 127.0.0.1/8 | match connection from local host |
METH_CONNECT | method CONNECT | match HTTP CONNECT method |
METH_DELETE | method DELETE | match HTTP DELETE method |
METH_GET | method GET HEAD | match HTTP GET or HEAD method |
METH_HEAD | method HEAD | match HTTP HEAD method |
METH_OPTIONS | method OPTIONS | match HTTP OPTIONS method |
METH_POST | method POST | match HTTP POST method |
METH_PUT | method PUT | match HTTP PUT method |
METH_TRACE | method TRACE | match HTTP TRACE method |
RDP_COOKIE | req_rdp_cookie_cnt gt 0 | match presence of an RDP cookie |
REQ_CONTENT | req_len gt 0 | match data in the request buffer |
TRUE | always_true | always match |
WAIT_END | wait_end | wait for end of content analysis |
预定义ACL使用
[root@Rocky ~]# curl -I -XTRACE 172.25.254.102/static/test.html
HTTP/1.1 405 Not Allowed
server: nginx/1.14.1
date: Sat, 05 Apr 2025 13:45:09 GMT
content-type: text/html
content-length: 173[root@Rocky ~]# cat /etc/haproxy/conf.d/test.cfg
frontend magedu_http_portbind 172.25.254.102:80mode httpbalance roundrobinlog globaloption httplog
###################### acl setting ###############################acl acl_static_path path_beg -i /static /images /javascript
###################### acl hosts #################################use_backend static_path_hostshttp-request deny if METH_TRACE HTTP_1.1 #引用预定义的ACL,与关系default_backend pc_hosts
################### backend hosts ################################
backend static_path_hostsmode httpserver web1 172.25.254.103:80 check inter 2000 fall 3 rise 5backend mobile_hostsmode httpserver web1 172.25.254.103:80 check inter 2000 fall 3 rise 5backend pc_hostsmode httpserver web2 172.25.254.104:80 check inter 2000 fall 3 rise 5[root@Rocky ~]# curl -I -XTRACE 172.25.254.102/static/test.html
HTTP/1.1 403 Forbidden
content-length: 93
cache-control: no-cache
content-type: text/html#查看日志,观察协议版本[root@Rocky html]# tail /var/log/nginx/access.log
172.25.254.102 - - [05/Apr/2025:21:43:18 +0800] "GET /static/test.html HTTP/1.1" 200 15 "-" "curl/7.61.1" "172.25.254.101"
172.25.254.102 - - [05/Apr/2025:21:45:09 +0800] "TRACE /static/test.html HTTP/1.1" 405 173 "-" "curl/7.61.1" "172.25.254.101"
172.25.254.102 - - [05/Apr/2025:21:48:46 +0800] "TRACE /static/test.html HTTP/1.0" 405 173 "-" "curl/7.61.1" "172.25.254.101"[root@Rocky ~]# curl -i 172.25.254.102/static/test.html
HTTP/1.1 200 OK
server: nginx/1.14.1
date: Sat, 05 Apr 2025 13:50:10 GMT
content-type: text/html
content-length: 15
last-modified: Sat, 05 Apr 2025 13:42:58 GMT
etag: "67f13362-f"
accept-ranges: bytes172.25.254.103
54.101"
172.25.254.102 - - [05/Apr/2025:21:48:46 +0800] "TRACE /static/test.html HTTP/1.0" 405 173 "-" "curl/7.61.1" "172.25.254.101"[root@Rocky ~]# curl -i 172.25.254.102/static/test.html
HTTP/1.1 200 OK
server: nginx/1.14.1
date: Sat, 05 Apr 2025 13:50:10 GMT
content-type: text/html
content-length: 15
last-modified: Sat, 05 Apr 2025 13:42:58 GMT
etag: "67f13362-f"
accept-ranges: bytes172.25.254.103
相关文章:
HAProxy-ACL实战篇
HAProxy-ACL实战篇 IP说明172.25.254.101客户端172.25.254.102haproxy服务器172.25.254.103web1172.25.254.104web2 ACL示例-域名匹配 # 172.25.254.102 [rootRocky ~]# cat /etc/haproxy/conf.d/test.cfg frontend magedu_http_portbind 172.25.254.102:80mode httpbalanc…...
以下是针对该 Ansible 任务的格式检查和优化建议
以下是针对该 Ansible 任务的格式检查和优化建议: 目录 一、格式检查原始代码问题分析修正后的标准格式 二、推荐增强功能1. 添加可执行权限2. 显式指定 Shell 解释器3. 添加错误处理 三、完整 Playbook 示例四、验证脚本兼容性五、常见错误总结 一、格式检查 原始…...
C++语言的测试覆盖率
C语言的测试覆盖率分析与实践 引言 在软件开发过程中,测试覆盖率是一项重要的质量指标,它帮助开发者评估代码的测试效果,确保软件的可靠性与稳定性。尤其在C语言的开发中,由于其复杂的特性和丰富的功能,测试覆盖率的…...
如何使用 DrissionPage 进行网页自动化和爬取
在这个技术博客中,我们将向大家展示如何使用 DrissionPage 进行网页自动化操作与数据爬取。DrissionPage 是一个基于 Playwright 的 Python 自动化工具,它允许我们轻松地控制浏览器进行网页爬取、测试以及自动化操作。与其他工具(如 Selenium…...
设计模式 Day 3:抽象工厂模式(Abstract Factory Pattern)详解
经过前两天的学习,我们已经掌握了单例模式与工厂方法模式,理解了如何控制实例个数与如何通过子类封装对象的创建逻辑。 今天,我们将进一步深入“工厂”体系,学习抽象工厂模式(Abstract Factory Pattern)&a…...
TensorRT 有什么特殊之处
一、TensorRT的定义与核心功能 TensorRT是NVIDIA推出的高性能深度学习推理优化器和运行时库,专注于将训练好的模型在GPU上实现低延迟、高吞吐量的部署。其主要功能包括: 模型优化:通过算子融合(合并网络层)、消除冗余…...
SQL注入-盲注靶场实战(手写盲注payload)--SRC获得库名即可
布尔盲注 进入页面 注入点 ’ and 11 and 12 得知为布尔盲注 库名长度 and length(database()) 8 抓包(浏览器自动进行了url编码)爆破 得知为 12 库名字符 1 and ascii(substr(database(),1,1))112 – q (这里如果不再次抓包…...
http://noi.openjudge.cn/_2.5基本算法之搜索_1804:小游戏
文章目录 题目深搜代码宽搜代码深搜数据演示图总结 题目 1804:小游戏 总时间限制: 1000ms 内存限制: 65536kB 描述 一天早上,你起床的时候想:“我编程序这么牛,为什么不能靠这个赚点小钱呢?”因此你决定编写一个小游戏。 游戏在一…...
Windows Flip PDF Plus Corporate PDF翻页工具
软件介绍 Flip PDF Plus Corporate是一款功能强大的PDF翻页工具,也被称为名编辑电子杂志大师。这款软件能够迅速将PDF文件转换为具有翻页动画效果的电子书,同时保留原始的超链接和书签。无论是相册、视频、音频,还是Flash、视频和链接&#…...
Java八股文-List
集合的底层是否加锁也就代表是否线程安全 (一)List集合 一、数组 array[1]是如何通过索引找到堆内存中对应的这块数据的呢? (1)数组如何获取其他元素的地址值 (2)为什么数组的索引是从0开始的,不可以从1开始吗 (3)操作数组的时间复杂度 ①查找 根据索引查询 未…...
btrfs , ext4 , jfs , xfs , zfs 对比 笔记250406
btrfs , ext4 , jfs , xfs , zfs 对比 笔记250406 特性Btrfsext4JFSXFSZFS定位现代多功能传统稳定轻量级高性能大文件企业级存储最大文件/分区16EB / 16EB16TB / 1EB4PB / 32PB8EB / 8EB16EB / 25610⁵ ZB快照✅ 支持❌ 不支持❌ 不支持❌ 不支持✅ 支持透明压缩✅ (Zstd/LZO)❌…...
Meta上新Llama 4,到底行不行?
这周AI圈被Meta的“深夜突袭”炸开了锅。 Llama 4家族带着三个新成员,直接杀回开源模型战场,连扎克伯格都亲自站台喊话:“我们要让全世界用上最好的AI!” 但别急着喊“王炸”,先看看它到底强在哪。 这次Meta玩了个狠招…...
显示器工艺简介
华星光电显示器的生产工艺流程介绍,从入厂原料到生产出显示器的整体工艺介绍 华星光电显示器的生产工艺流程主要包括以下几个阶段,从原材料入厂到最终显示器的生产: 原材料准备 玻璃基板:显示器的核心材料,通常采用超…...
音乐软件Pro版!内置音源,听歌自由,一键畅享!
今天给大家介绍一款超实用的音乐软件——LX音乐Pro版。原版LX音乐需要用户自行导入音源才能正常使用,但此次推出的Pro版已经内置了音源,省去了繁琐的操作步骤,使用起来更加便捷 这款软件不仅支持歌曲搜索,还能搜索歌单,…...
Spring 中有哪些设计模式?
🧠 一、Spring 中常见的设计模式 设计模式类型Spring 中的应用场景单例模式创建型默认 Bean 是单例的工厂模式创建型BeanFactory、FactoryBean抽象工厂模式创建型ApplicationContext 提供多个工厂接口代理模式结构型AOP 动态代理(JDK/CGLIB)…...
R语言使用ggplot2作图
在ggplot2中,图是采用串联起来()号函数创建的。每个函数修改属于自己的部分。比如,ggplot()geom()...... aes(x, y, colour a,shape a,size a.......) ggplot2中画图常用的五大块内容 数据(data)及一系列将数据中的变量对应到图…...
GenerationMixin概述
类 类名简单说明GenerateDecoderOnlyOutput继承自 ModelOutput,适用于非束搜索方法的解码器-only模型输出类。GenerateEncoderDecoderOutput继承自 ModelOutput,适用于非束搜索方法的编码器-解码器模型输出类。GenerateBeamDecoderOnlyOutput继承自 Mod…...
文心快码制作微信小程序
AI时代来临,听说Baidu Comate也推出了自家的编程工具Zulu,可以从零到一帮你生成代码,趁着现在还免费,试试效果如何。这里以开发一个敲木鱼的微信小程序为例 一、需求分析 写小程序需求文档 首先,第一步我要准确描述…...
flutter provider状态管理使用
在 Flutter 中,Provider 是一个轻量级且易于使用的状态管理工具,它基于 InheritedWidget,并提供了一种高效的方式来管理和共享应用中的状态。相比其他复杂的状态管理方案(如 Bloc 或 Riverpod),Provider 更…...
C++——静态成员
目录 静态成员的定义 静态成员变量 编程示例 存在的意义 静态成员函数 类内声明 类外定义 编程示例 静态成员的定义 静态成员在C类中是一个重要的概念,它包括静态成员变量和静态成员函数。静态成员的特点和存在的意义如下: 静态成员变量 1…...
UDP学习笔记(四)UDP 为什么大小不能超过 64KB?
🌐 UDP 为什么大小不能超过 64KB?TCP 有这个限制吗? 在进行网络编程或者调试网络协议时,我们常常会看到一个说法: “UDP 最大只能发送 64KB 数据。” 这到底是怎么回事?这 64KB 是怎么来的?TCP…...
Linux中用gdb查看coredump文件
查看dump的命令: gdb 可执行文件 dump文件路径查看函数调用栈 (gdb)bt查看反汇编代码 (gdb)disassemble查看寄存器的值 (gdb)info all-registers如果通过上述简单命令无法排查,还是通过-g参数编译带符号表的可执行文件,再用gdb查看...
PyTorch 深度学习 || 7. Unet | Ch7.1 Unet 框架
1. Unet 框架...
LeetCode 热题 100 堆
215. 数组中的第K个最大元素 给定整数数组 nums 和整数 k,请返回数组中第 **k** 个最大的元素。 请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。 你必须设计并实现时间复杂度为 O(n) 的算法解决此问题。 示例 …...
LeetCode栈 155. 最小栈
设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。 实现 MinStack 类: MinStack() 初始化堆栈对象。void push(int val) 将元素val推入堆栈。void pop() 删除堆栈顶部的元素。int top() 获取堆栈顶部的元素。int get…...
Linux系统03---文件操作时间编程
目录 文件操作 1.1 缓冲区 1.2 基于缓冲区的文件操作---高级 IO 1.3 基于非缓冲区的文件操作—低级 IO 1.3.1 文件描述符 int fd; 1.3.2 函数名:open() 1.3.3 函数名:close() 1.3.4 函数名:write() 1.3.5 函数名:read(…...
4月5日作业
需求: 1.按照图示的VLAN及IP地址需求,完成相关配置 2.要求SW 1为VLAN 2/3的主根及主网关 SW2为VLAN 20/30的主根及主网关,SW1和 SW2互为备份 3.可以使用super vlan 4.上层通过静态路由协议完成数据通信过程 5.AR1为企业出口路由器…...
新一代AI架构实践:数字大脑AI+智能调度MCP+领域执行APP的黄金金字塔体系
新一代AI架构实践:数字大脑智能调度领域执行的黄金金字塔体系 一、架构本质的三层穿透性认知 1.1 核心范式转变(CPS理论升级) 传统算法架构:数据驱动 → 特征工程 → 模型训练 → 业务应用 新一代AI架构:物理规律建…...
低代码开发:重塑软件开发的未来
在数字化转型的浪潮中,企业对软件开发的需求呈爆炸式增长。然而,传统软件开发模式面临着开发周期长、成本高、技术门槛高等诸多挑战。低代码开发平台(Low-Code Development Platform)应运而生,它通过可视化编程和拖拽式…...
小型园区网实验作业
拓扑搭建: 实验需求: 1、按照图示的VLAN及IP地址需求,完成相关配置 2、要求SW1为VLAN 2/3的主根及网关 SW2 为VLAN 20/30 的主根及主网关 SW1和SW2互为备份 3、可以使用super vlan 4、上层通过静态路由协议完成数据通信过程 5、A…...
Gateway 网关 快速开始
一、核心概念 路由(route) 路由是网关中最基础的部分,路由信息包括一个ID、一个目的URI、一组断言工厂、一组Filter组成。如果断言为真,则说明请求的 URL 和配置的路由匹配。 断言(predicates) 断言函数允许开发者去定义匹配 Http Request 中…...
C++中如何使用STL中的list定义一个双向链表,并且实现增、删、改、查操作
一、STL中的 list 是双向链表,但不是循环链表,通过指针访问结点数据,它的内存空间可以是不连续的,使用它能高效地进行各种操作。 二、代码 #include <bits/stdc.h> using namespace std;// 打印链表元素的函数 void print…...
shell脚本中捕获键盘中断信号trap
在 Shell 脚本中,可以通过 trap 命令捕获键盘中断信号(通常是 SIGINT,即 CtrlC)。以下是具体的实现方法: 1.使用 trap 捕获键盘中断信号 trap 命令用于捕获信号并执行相应的命令或函数。SIGINT(信号编号为 …...
让ChatGPT用DeepReaserch指导进行学术写作
目录 ChatGPT在学术论文写作中的作用与分阶段提示词指南 1.选题阶段(确定研究课题方向) 2.文献综述阶段(调研与综述已有研究) 3.研究设计阶段(设计研究方法与框架) 4.撰写正文阶段(撰写各部…...
Compose笔记(十四)--LazyColumn
这一节了解一下Compose中的LazyColumn,在Jetpack Compose 中,LazyColumn 是一个用于高效显示长列表或可滚动垂直布局的组件。它类似于传统 Android 开发中的 RecyclerView,但专为 Compose 的声明式 UI 框架设计,能够显著优化性能&…...
CNN-SE-Attention-ITCN多特征输入回归预测(Matlab完整源码和数据)
CNN-SE-Attention-ITCN多特征输入回归预测(Matlab完整源码和数据) 目录 CNN-SE-Attention-ITCN多特征输入回归预测(Matlab完整源码和数据)预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.一种适合光伏功率回归预测的高创…...
Spring Data JPA中的List底层:深入解析ArrayList的奥秘!!!
🌟 Spring Data JPA中的List底层:深入解析ArrayList的奥秘 💡 你是否好奇过,为什么Spring Data JPA的查询方法返回的List<T>总是默认为ArrayList?本文将通过技术原理解析、验证实验和性能优化指南,为…...
redis高并发缓存架构与性能优化
Redlock实现原理 超过半数redis节点加锁成功才算成功加锁。 Redlock存在问题 如果主节点挂掉,还没有同步到从节点,重新选举出主节点,那加锁就没有加到这个新的主节点上。 如果增加redis主节点数,那么加锁的性能更差,要…...
解锁多邻国:全方位语言学习新体验
解锁多邻国:全方位语言学习新体验 在数字化学习浪潮中,多邻国(Duolingo)凭借独特优势,成为全球超 5 亿用户的语言学习首选。这款 2012 年诞生于美国匹兹堡的应用,2019 年进入中国市场后,…...
Docker部署SeraXNG接入dify报错解决
报错: 设置授权 配置凭据后,工作区中的所有成员都可以在编排应用程序时使用此工具。 SearXNG base URL* 如何获取 PluginInvokeError: {"args":{},"error_type":"ToolProviderCredentialValidationError","message&q…...
Zookeeper的作用详解
Zookeeper作为分布式协调服务,在分布式系统中承担核心协调角色,其作用可归纳为以下核心功能模块: 一、分布式协调与同步 分布式锁管理 提供独占锁和共享锁,通过创建临时顺序节点实现锁的公平竞争。例如,客户端在/distr…...
高频面试题(含笔试高频算法整理)基本总结回顾34
干货分享,感谢您的阅读! (暂存篇---后续会删除,完整版和持续更新见高频面试题基本总结回顾(含笔试高频算法整理)) 备注:引用请标注出处,同时存在的问题请在相关博客留言…...
Dify 与 n8n 对比分析:AI 应用开发与自动化工作流工具的深度比较
Dify 与 n8n 对比分析:AI 应用开发与自动化工作流工具的深度比较 摘要 本文对比分析了 Dify 和 n8n 两款工具的核心定位、功能特点、适用场景及技术门槛。Dify 专注于 AI 应用开发,适合快速搭建智能客服、知识库检索等场景;n8n 则定位于通用…...
Systemd构建容器化微服务集群管理系统
实训背景 你是一家云计算公司的 DevOps 工程师,需为某客户设计一套基于 Docker 的微服务集群管理系统,需求如下: 容器自启管理:确保三个服务(webapp、api、redis)在系统启动时自动运行。依赖顺序控制&…...
手搓多模态-04 归一化介绍
在机器学习中,归一化是一个非常重要的工具,它能帮助我们加速训练的速度。在我们前面的SiglipVisionTransformer 中,也有用到归一化层,如下代码所示: class SiglipVisionTransformer(nn.Module): ##视觉模型的第二层&am…...
nano 编辑器的使用
nano 编辑器的使用 1. 启动 nano2. 编辑文本3. 基本操作4. 保存和退出5. 其他常用快捷键6. 高级用法 nano 是一个简单易用的文本编辑器,适合初学者使用: 1. 启动 nano 在终端中输入 nano 命令,后面可以跟上你想要编辑的文件的名称。如果文件…...
如何搞定学习人工智能所需的数学?
一、明确AI所需的数学核心领域 AI的数学需求并非泛泛而谈,而是集中在几个核心领域。以下是按优先级排序的关键知识点: 线性代数 核心概念:向量、矩阵、特征值分解、奇异值分解(SVD)。应用场景:图像处理&a…...
TCP/IP五层协议
目录 1. 五层模型结构 2. 各层核心功能与协议 (1) 应用层(Application Layer) (2) 传输层(Transport Layer) (3) 网络层(Network Layer) (4) 数据链路层(Data Link Layer) (5…...
解决Opencv:TypeError: points is not a numerical tuple
最近刚开始学习Opencv,跟着b站阿婆主敲代码的时候,又又又又,又出现了bug,下面听我娓娓道来~~ --------------------------------------------------------------------------(手动分界线) 首先描述一下当时…...
LLM-大语言模型浅谈
目录 核心定义 典型代表 核心原理 用途 优势与局限 未来发展方向 LLM(Large Language Model)大语言模型,指通过海量文本数据训练 能够理解和生成人类语言的深度学习模型。 核心定义 一种基于深度神经网络(如Transformer架…...