HAproxy+keepalived高可用配置搭建

目录

一、概述

(一)简介

(二)核心功能

(三)关键特性

(四)应用场景

二、安装

1)拓补图

2)配置

(一)内核配置

(二)编译安装

(三)建立配置文件

(四)添加为系统服务

(五)添加3和5运行级别下自启动

(六)启动haproxy   

三、调度算法

四、配置文件

五、负载均衡

(一)7层负载

1、配置负载

2、配置监控页面

(二)4层负载

六、配置syslog日志

七、安装web服务进行访问测试

八、keepalive+haproxy实现高可用

1、实验拓补:

2、实验要求:

3、keepalived配置

4、haproxy配置

5、测试

1)使用命令进行查看

2)使用网页进行测试

3)停掉服务进行查看

4)重启主的服务再次进行检查

总结


一、概述

       HAProxy是一款开源的高性能负载均衡器和代理服务器。它可以将传入的请求分发到多台后端服务器上,以提高系统的负载能力和可用性。HAProxy支持多种负载均衡算法,如轮询、加权轮询、源IP哈希等,可以根据实际需求选择合适的算法。

       HAProxy不仅仅是一个负载均衡器,它还提供了许多其他功能。它可以进行SSL终端代理,实现HTTPS的负载均衡;还可以进行内容转换和过滤,并提供高级的HTTP请求和响应管理功能。HAProxy还支持健康检查,可以自动剔除故障的后端服务器,并动态调整请求的分发策略。

       HAProxy具有高性能和低延迟的优势,可以处理大量的并发请求。它支持多线程和多进程模型,可以利用多核处理器的性能。此外,HAProxy还提供了详细的统计信息和日志记录,以便进行分析和监控。

       由于其可靠性和灵活性,HAProxy被广泛应用于各种场景,包括Web应用程序、API网关、数据库负载均衡、云服务等。它是一个强大而可靠的负载均衡解决方案,为系统的可扩展性和可靠性提供了重要支持。

(一)简介

    HAProxy是一个免费的负载均衡软件,可以运行于大部分主流的Linux操作系统上(CentOS、Ubuntu、Debian、OpenSUSE、Fedora、麒麟、欧拉、UOS)。

    HAProxy提供了L4(TCP)和L7(HTTP)两种负载均衡能力,具备丰富的功能。HAProxy具备媲美商用负载均衡器的性能和稳定性。

(二)核心功能

        负载均衡:L4和L7两种模式,支持RR/静态RR/LC/IP Hash/URI Hash/URL_PARAM Hash/HTTP_HEADER Hash等丰富的负载均衡算法

        健康检查:支持TCP和HTTP两种健康检查模式

        会话保持:对于未实现会话共享的应用集群,可通过Insert Cookie/Rewrite Cookie/Prefix Cookie,以及上述的多种Hash方式实现会话保持

        SSL:HAProxy可以解析HTTPS协议,并能够将请求解密为HTTP后向后端传输
        HTTP请求重写与重定向

        监控与统计:HAProxy提供了基于Web的统计信息页面,展现健康状态和流量数据。基于此功能,使用者可以开发监控程序来监控HAProxy的状态

(三)关键特性

        采用单线程、事件驱动、非阻塞模型,减少上下文切换的消耗,能在1ms内处理数百个请求。并且每个会话只占用数KB的内存。

        大量精细的性能优化,如O(1)复杂度的事件检查器、延迟更新技术、Single-buffereing、Zero-copy forwarding等等,这些技术使得HAProxy在中等负载下只占用极低的CPU资源。

        HAProxy大量利用操作系统本身的功能特性,使得其在处理请求时能发挥极高的性能,通常情况下,HAProxy自身只占用15%的处理时间,剩余的85%都是在系统内核层完成的。

        HAProxy作者在8年前(2009)年使用1.4版本进行了一次测试,单个HAProxy进程的处理能力突破了10万请求/秒,并轻松占满了10Gbps的网络带宽。

(四)应用场景

    高并发要求较高的场合下

  1. 负载均衡:HAProxy是一款高性能的负载均衡器,可以将传入的请求平均分发到多个后端服务器上,以提高系统的可用性和扩展性。它支持多种负载均衡算法,可以根据实际需求选择合适的算法。

  2. 高可用性:通过HAProxy的健康检查和自动剔除故障服务器的功能,可以实现高可用性的系统架构。当后端服务器出现故障时,HAProxy可以自动将请求重新分发到其他正常的服务器上,保证服务的连续性和稳定性。

  3. 代理服务器:HAProxy可以作为代理服务器,提供SSL终端代理和HTTP代理等功能。它可以处理HTTPS流量,对传入或传出的HTTP流量进行内容转换和过滤。这使得HAProxy成为一个强大的代理服务器,可以用于加密传输和安全访问控制。

  4. Web应用程序加速:通过HAProxy的缓存和压缩功能,可以加速Web应用程序的响应速度。HAProxy可以缓存静态内容,减轻后端服务器的负载,并在适当的情况下对传出的内容进行压缩,减少网络传输的时间和带宽消耗。

  5. API网关:HAProxy可以作为API网关,对传入的API请求进行路由、转换和限流等操作。它可以将请求发送到适当的后端服务,并对请求进行验证和授权。这使得HAProxy成为构建可扩展和安全的API架构的理想选择。

二、安装

实验前提:

1)拓补图

2)配置

虚拟机3台

搭建haproxy服务

haproxy:192.168.11.111

搭建web服务

Nginx1:192.168.11.112

Nginx2:192.168.11.112

(一)内核配置

net.ipv4.tcp_tw_reuse = 1
net.ipv4.ip_local_port_range = 1024 65023
net.ipv4.tcp_max_syn_backlog = 10240
net.ipv4.tcp_max_tw_buckets = 400000
net.ipv4.tcp_max_orphans = 60000
net.ipv4.tcp_synack_retries = 3
net.core.somaxconn = 10000

注:在进行实验的环境下可不进行配置,但是在真实环境下,需要更改内核参数进行配置

(二)编译安装

wget https://www.haproxy.org/download/1.7/src/haproxy-1.7.2.tar.gz

tar xf haproxy-1.7.2.tar.gz 
cd haproxy-1.7.2/
ls

 这里可以看到不需要进行配置路径,直接开始编译安装,在编译安装时进行指定路径

make PREFIX=/usr/local/haproxy TARGET=linux2628 && make install PREFIX=/usr/local/haproxy
- linux22     for Linux 2.2
- linux24     for Linux 2.4 and above (default)
- linux24e    for Linux 2.4 with support for a working epoll (> 0.21)
- linux26     for Linux 2.6 and above
- linux2628   for Linux 2.6.28, 3.x, and above (enables splice and tproxy)

 注:这段文本描述的是在编译HAProxy时可以选择的操作系统类型。每个选项对应着不同的Linux内核版本和功能支持。以下是对每个选项的简要解释:

- `linux22`:适用于Linux 2.2版本的内核。
- `linux24`:适用于Linux 2.4版本的内核及以上版本,这也是默认的选项。
- `linux24e`:适用于Linux 2.4版本的内核,并支持工作中的epoll(版本需大于0.21)。
- `linux26`:适用于Linux 2.6版本的内核及以上版本。
- `linux2628`:适用于Linux 2.6.28版本、3.x版本及以上的内核,启用了splice和tproxy功能。

选择合适的操作系统类型可以确保HAProxy在特定的Linux内核上能够正常运行,并充分利用特定版本内核的功能。根据实际情况,你可以选择最适合你的系统的选项来编译HAProxy。 

(三)建立配置文件

    从haproxy的源码包中的examples下的init.haproxy中获得配置文件的路径

vim /root/haproxy-1.7.2/examples/init.haproxy

我们在 /etc/ 下并不存在这个目录和这个文件,所以需要手动对文件进行创建

mkdir /etc/haproxy
vim /etc/haproxy/haproxy.cfg

配置文件内容: 

global #全局属性daemon  #以daemon方式在后台运行maxconn 256  #这里指最大同时256连接(haproxy最大支持10万并发,256进行实验完全够用)pidfile /usr/local/haproxy/run/haproxy.pid  #指定保存HAProxy进程号的文件,路径为编译时指定的路径defaults #默认参数mode http  #http模式timeout connect 5000ms  #连接server端超时5stimeout client 50000ms  #客户端响应超时50stimeout server 50000ms  #server端响应超时50sfrontend Nginx_server #前端服务Nginx_serverbind *:80  #监听80端口,默认端口即可default_backend Nginx_servers  #请求转发至名为"Nginx_servers"的后端服务backend Nginx_servers #后端服务Nginx_serversserver server1 192.168.11.112:80 maxconn 32  #backend Nginx_servers中有一个叫server1后端服务,起在本机的80端口,HAProxy>同时最多向这个服务发起32个连接server server2 192.168.11.113:80 maxconn 32  #backend Nginx_servers中有一个叫server2后端服务,起在本机的80端口,HAProxy>同时最多向这个服务发起32个连接

(四)添加为系统服务

cp /root/haproxy-1.7.2/examples/haproxy.init /etc/init.d/haproxy 
vim /etc/init.d/haproxy 

 赋予执行权限并查看

chmod +x /etc/init.d/haproxy
chkconfig --add /etc/init.d/haproxy
chkconfig --list

(五)添加3和5运行级别下自启动

chkconfig --level 35 haproxy on
chkconfig --list 

(六)启动haproxy   

#启动命令
service haproxy start
#停止命令
service haproxy  stop
#重启命令
service haproxy  restart  
#平滑加载配置文件
service haproxy reload

systemctl daemon-reload

命令解析:

systemctl daemon-reload是一个系统命令,用于重新加载systemd单位文件的更改。

当我们对系统服务的配置文件进行修改时,例如在/etc/systemd/system/目录下添加、修改或删除了服务文件,我们需要使用systemctl daemon-reload命令来通知systemd重新加载这些更改,以便systemd可以识别和适用新的配置。这样修改后的配置才会生效。

注意:只有在修改了systemd单位文件后,才需要运行systemctl daemon-reload。

注:除了使用service的方式启动haproxy也可以使用systemctl进行启停

三、调度算法

    roundrobin:表示简单的轮询。

    static-rr:表示根据权重。

    leastconn:表示最少连接者先处理。

    source:表示根据请求的源 IP,类似 Nginx 的 IP_hash 机制。

    ri:表示根据请求的 URI。

    rl_param:表示根据 HTTP 请求头来锁定每一次 HTTP 请求。

    rdp-cookie(name):表示根据据 cookie(name)来锁定并哈希每一次 TCP 请求。

四、配置文件

    配置项解析:

global #全局属性daemon  #以daemon方式在后台运行maxconn 256  #这里指最大同时256连接(haproxy最大支持10万并发,256进行实验完全够用)pidfile /usr/local/haproxy/run/haproxy.pid  #指定保存HAProxy进程号的文件,路径为编译时指定的路径defaults #默认参数mode http  #http模式timeout connect 5000ms  #连接server端超时5stimeout client 50000ms  #客户端响应超时50stimeout server 50000ms  #server端响应超时50sfrontend Nginx_server #前端服务Nginx_serverbind *:80  #监听80端口,默认端口即可default_backend Nginx_servers  #请求转发至名为"Nginx_servers"的后端服务backend Nginx_servers #后端服务Nginx_serversserver server1 192.168.11.112:80 maxconn 32  #backend Nginx_servers中有一个叫server1后端服务,起在本机的80端口,HAProxy>同时最多向这个服务发起32个连接server server2 192.168.11.113:80 maxconn 32  #backend Nginx_servers中有一个叫server2后端服务,起在本机的80端口,HAProxy>同时最多向这个服务发起32个连接########################################################################################
最大连接数maxconn
此参数根据应用的实际使用情况进行调整,推荐使用10240,同时“defaults”中的最大连接数的值不能超过“global”段中的定义
守护进程模式daemon
Haproxy 可以使用非守护进程模式启动,生产环境建议使用守护进程模式启动
负载均衡的并发进程数  nbproc
重试次数  retries
主动关闭http 请求选项
option http-server-close
timeout http-keep-alive
优化建议
建议与当前服务器CPU核数相等或为其2倍此参数主要用于对群集节点的检查,如果节点多,且并发量大,设置为2次或3次;在服务器节点不多的情况下,可以设置5次或6次
建议在生产环境中使用此选项,避免由于timeout 时间设置过长导致http连接堆积
长连接超时时间
http 请求超时时间timeout client
timeout http-request

    global:用于配置全局参数

    default:用于配置所有frontend和backend的默认属性

    frontend:用于配置前端服务(即HAProxy自身提供的服务)实例

    backend:用于配置后端服务(即HAProxy后面接的服务)实例组

    listen:frontend+backend的组合配置,可以理解成更简洁的配置方法

五、负载均衡

(一)7层负载

1、配置负载

vim /etc/haproxy/haproxy.cfg 

2、配置监控页面

在上述配置文件中添加如下内容:

listen stats                  #定义监控页面    
bind *:1080                   #绑定端口1080
stats refresh 30s             #每30秒更新监控数据    
stats uri /stats              #访问监控页面的uri    
stats realm HAProxy\ Stats    #监控页面的认证提示    
stats auth admin:admin        #监控页面的用户名和密码

(二)4层负载

        配置负载

global daemon  maxconn 256  pidfile /usr/local/haproxy/run/haproxy.pid   #pid目录存在变动的话需要进行更改defaults mode tcptimeout connect 5000ms  timeout client 50000ms  timeout server 50000ms frontend http-in         #http-in需要更改 bind *:8080          #监听IP和端口,如有需要需进行更改default_backend servers  backend serversbalance  roundrobin  #轮询#balance  source     #保持会话 server server1 127.0.0.1:8000 maxconn 32  
server server2 127.0.0.1:8090 maxconn 32

注:需要注意的是在四层负载的情况下是不支持监控状态查询的

六、配置syslog日志

cd /etc/rsyslog.d/
ls

 

在这里可以看到没有存在的syslog日志文件,手动进行创建 

vim haproxy.conf
$ModLoad imudp$UDPServerRun 514
$FileCreateMode 0644                          #日志文件的权限
$FileOwner root                               #日志文件的owner
local0.*     /var/log/haproxy.log             #local0接口对应的日志输出文件
local1.*     /var/log/haproxy_warn.log        #local1接口对应的日志输出文件

七、安装web服务进行访问测试

在Nginx1、Nginx2机器上各安装Nginx,haproxy使用命令进行测试

yum install -y nginx
echo nginx1 > /usr/share/nginx/html/index.html
systemctl start nginx
echo nginx2 > /usr/share/nginx/html/index.html
systemctl start nginx
curl 192.168.11.111
curl 192.168.11.111

 

 主机访问网站进行测试

 访问监控页面

curl 192.168.11.111/stats

主机访问 192.168.11.111:1080/stats

八、keepalive+haproxy实现高可用

1、实验拓补:

2、实验要求:

实验需要四台虚拟机进行配置

主和备安装keepalived和haproxy服务

master:192.168.11.111

backup:192.168.11.114

安装web服务

web1:192.168.11.112

web2:192.168.11.113

虚拟IP(VIP):192.168.11.200

3、keepalived配置

在master和backup机器上安装keepalived

yum install -y keepalived

更改主备的配置文件

 先做好备份文件

cd /etc/keepalived/
ls
cp keepalived.conf keepalived.conf.bak

编辑配置文件: 

主:master

vim keepalived.conf
global_defs {router_id LVS_DEVEL
}
#HAProxy健康检查配置
vrrp_script chk_haproxy {script "killall -0 haproxy"            #使用killall -0检查haproxy实例是否存在,性能高于ps命令
global_defs {router_id LVS_DEVEL
}
#HAProxy健康检查配置
vrrp_script chk_haproxy {script "killall -0 haproxy"            #使用killall -0检查haproxy实例是否存在,性能高于ps命令
global_defs {router_id LVS_DEVEL
}
#HAProxy健康检查配置
vrrp_script chk_haproxy {script "killall -0 haproxy"            #使用killall -0检查haproxy实例是否存在,性能高于ps命令interval 2                             #脚本运行周期weight 2                               #每次检查的加权权重值
}vrrp_instance HA_1 {state MASTERinterface ens33virtual_router_id 51priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.11.200}track_script {chk_haproxy                        #对应的健康检查配置}
}

备:backup

这里使用scp远程传输过去即可,只需更改细节内容

scp keepalived.conf 192.168.11.114:/etc/keepalived/

 只需更改12行以及15行即可

4、haproxy配置

主:master

vim /etc/haproxy/haproxy.cfg 
global #全局属性daemon  #以daemon方式在后台运行maxconn 256  #这里指最大同时256连接(haproxy最大支持10万并发,256进行实验完全够用)pidfile /usr/local/haproxy/run/haproxy.pid  #指定保存HAProxy进程号的文件,路径为编译时指定的路径defaults #默认参数mode http  #http模式timeout connect 5000ms  #连接server端超时5stimeout client 50000ms  #客户端响应超时50stimeout server 50000ms  #server端响应超时50sfrontend Nginx_server #前端服务Nginx_serverbind *:80  #监听80端口,默认端口即可default_backend Nginx_servers  #请求转发至名为"Nginx_servers"的后端服务backend Nginx_servers #后端服务Nginx_serversserver server1 192.168.11.112:80 maxconn 32  #backend Nginx_servers中有一个叫server1后端服务,起在本机的80端口,HAProxy>同时最多向这个服务发起32个连接server server2 192.168.11.113:80 maxconn 32  #backend Nginx_servers中有一个叫server2后端服务,起在本机的80端口,HAProxy>同时最多向这个服务发起32个连接listen stats                  #定义监控页面    
bind *:1080                   #绑定端口1080
stats refresh 30s             #每30秒更新监控数据    
stats uri /stats              #访问监控页面的uri    
stats realm HAProxy\ Stats    #监控页面的认证提示    
stats auth admin:admin        #监控页面的用户名和密码

备:backup

注:在主的haproxy的基础上无需进行变动,所以我们直接远程发送即可。 

scp haproxy.cfg 192.168.11.114:/etc/haproxy/

    分别重启两个服务

systemctl restart keepalived
systemctl restart haproxy

5、测试

1)使用命令进行查看

主:master测试

curl 192.168.11.200
curl 192.168.11.200

这里可以看到负载均衡没有问题

 备:backup测试

2)使用网页进行测试

 

这里可以看出负载均衡也没有任何问题。

3)停掉服务进行查看

先查看主和备的IP和虚IP

主:master

 备:backup

主:master

systemctl stop keepalived

 回到备:backup上进行查看

 在这里已经可以看出虚IP地址已经自动漂移到备:backup 上了 

进行测试

 

4)重启主的服务再次进行检查

 这里可以看出虚IP地址已经自动漂移回到了主:master上

总结

        keepalived和HAProxy是一对强力组合,用于实现高可用性和负载均衡的解决方案。通过keepalived,我们可以创建一个虚拟IP地址(VIP),将其关联到HAProxy服务器集群上。当主HAProxy服务器发生故障时,keepalived会检测到并自动切换到备用服务器,使应用服务保持可用。这组合的好处是双重的:一方面,keepalived提供了高可用性,确保即使出现故障也能保持服务的连续性;另一方面,HAProxy提供了负载均衡,使流量能够高效地分发到后端服务器,提高系统的性能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/55061.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

几种在JavaScript中创建对象的方式!

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 字面量方式⭐ 构造函数方式⭐ Object.create()方式⭐ 工厂函数方式⭐ ES6类方式⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门…

【硬件设计】硬件学习笔记一--元器件的介绍与选型

硬件学习笔记一--元器件的选型 一、电阻1.1 电阻的分类1.2 电阻的选型 二、电容2.1 陶瓷电容2.2 钽电容2.3 铝电解电容2.4 电容选型 三、电感3.1 定义与介绍3.2 电感的分类3.3 电感的参数 四、磁珠4.1 磁珠的介绍4.2 磁珠的参数 五、二极管5.1 定义5.2 稳压管5.3 肖特基二极管5…

究竟会不会阻塞?HTML文档渲染中的CSS和JS文件下载探秘

在Web前端开发中,网页的性能优化一直是一个重要的课题。其中,优化网页的加载速度尤为关键。本文将探讨一个常见的问题:HTML文档渲染过程中,CSS文件和JS文件的下载是否会阻塞渲染,以及如何处理这个问题。 阻塞渲染的问…

SystemVerilog Chapter24: Programs

24.1General概述 本条款描述了以下内容: --Programs 声明 --Programs 调度语义 --与时钟块结合使用的Programs --匿名Programs 24.2 Overview module是设计的基本构建块。module可以包含其他模块、网络、变量、子例程声明以及a…

BDA初级分析——可视化基础

一、可视化的作用 数据可视化——利用各种图形方式更加直观地呈现数据的过程 可视化的作用 1、更快地理解数据,找出数据的规律和异常 2、讲出数据背后的故事,辅助做出业务决策 3、给非专业人士提供数据探索的能力 数据分析问题如何通过可视化呈现&am…

数据分析基础-数据可视化02-不同数据类型的可视化概念及原则

将数据空间映射到颜色空间。 数据空间:连续或分类 数据可以被划分为两个主要的数据空间:连续数据和分类数据。这两种数据空间有不同的特点和适用的分析方法。 连续数据(Continuous Data): 连续数据是指可以在某个范…

Orchestrator介绍二 自身高可用性方案

目录 获得 HA 的方法 一 没有高可用性 (No high availability) 使用场景 架构组成 架构图 二 半高可用性(Semi HA) 三 基于共享数据库后端高可用(HA via shared backend) 四 基于Raft协议高可用 五…

webrtc交叉编译嵌入式的方法

背景是我们有嵌入式的需求,需要编译webrtc进入板子上。先说结论,最后是这样config之后就编译通过的: gn gen out/linux-yeshen --args‘target_os“linux” target_cpu“arm64” ffmpeg_branding“Chrome” proprietary_codecstrue is_debugt…

Tableau可视化入门实践-2

目录 折线图1.导入excel文件数据2.建立折线图并添加标签 双轴折线图 折线图 1.导入excel文件数据 2.建立折线图并添加标签 双轴折线图 行标签拖进两个度量建立上下两个折线图 在第二个折线图纵轴,右键选择“双轴”

【mysql】MySQL服务无法启动 NET HELPMSG 3534

MySQL服务无法启动 NET HELPMSG 3534 错误描述寻找原因解决方法 错误描述 mysql版本:8.1.0 mysql安装成功之后,使用net start mysql来启动mysql,然后出现了报错 MySQL服务无法启动 NET HELPMSG 3534 寻找原因 1、在cmd中,进入…

JWT-Token

一、JWT 需要在 HTTP 这种无状态的机制下,记录下(标识)出来是不是连续(逻辑上的连续)的请求。 思路:如果多次请求,携带了相同的标识型数据,则认为是逻辑上连续的。这个标识&#xff…

数据结构(Java实现)LinkedList与链表(下)

** ** 结论 让一个指针从链表起始位置开始遍历链表,同时让一个指针从判环时相遇点的位置开始绕环运行,两个指针都是每次均走一步,最终肯定会在入口点的位置相遇。 LinkedList的模拟实现 单个节点的实现 尾插 运行结果如下: 也…

构建 NodeJS 影院预订微服务并使用 docker 部署(04/4)

一、说明 构建一个微服务的电影网站,需要Docker、NodeJS、MongoDB,这样的案例您见过吗?如果对此有兴趣,您就继续往下看吧。 我们前几章的快速回顾 第一篇文章介绍了微服务架构模式,并讨论了使用微服务的优缺点。第二篇…

uniapp封装ajax请求

import /common/api/interceptor.js; // 引入拦截器文件 export default{common:{baseUrl:"http://localhost:3000/api",data:{},header:{"Access-Control-Allow-Origin":"*","Content-Type":"application/json","Cont…

MacOS软件安装包分享(附安装教程)

目录 一、软件简介 二、软件下载 一、软件简介 MacOS是一种由苹果公司开发的操作系统,专门用于苹果公司的计算机硬件。它被广泛用于创意和专业应用程序,如图像设计、音频和视频编辑等。以下是关于MacOS的详细介绍。 1、MacOS的历史和演变 MacOS最初于…

Linux 计算机网络基础概论

一、网络基本概念 1、网络 网络是由若干节点和连接这些结点的链路组成,网络中的结点可以是计算机、交换机、路由器等设备。通俗地说就是把不同的主机连接起来就构成了一个网络,构成网路的目的是为了信息交互、资源共享。 网络设备有:交换机…

ctfshow-web-红包题第六弹

0x00 前言 CTF 加解密合集CTF Web合集 0x01 题目 0x02 Write Up 首先跑一下字典,这里用的dirmap,可以看到有一个web.zip 下载下来之后发现是一个网站备份,备份的是check.php.bak 然后接着看,可以看到这里不太可能是sql注入,有…

centos7安装nacos

解决 Nacos 国内下载速度缓慢的问题 方案 1. 选择相应的版本源码下载 1.1 依次点击 1、2、3 选中我们的最新稳定版本 1.4.0 1.2 点击下载 ZIP、或者 clone 也行,这里都可以 2. 本地编译 2.1 预备环境准备 2.2 解压编译 3. 启动验证 3.1 解压 3.2 启动服务器 3…

k8s service (三)

K8s service (三) LoadBalancer类型的Service LoadBalancer和NodePort其实是同一种方式,目的都是向外暴露一个端口,区别在于LoadBalancer会在集群的外部再来做一个负载均衡设备,而这个设备需要外部环境支持的,外部服务发送到这…

excel 分组排序

excel中会遇到对不同分组数据进行排序,比如对于不同班级里的学生按照分数高低进行升序排序,可以采用如下公式 SUMPRODUCT((A$2:A$12A2)*(C$2:C$12>C2))1 如果需要 进行降序排序,将公式中的大于号替换为小于号即可