LVS负载均衡

LVS负载均衡

一、LVS是什么

LVS是linux virtual server的简写linux虚拟服务器,是一个虚拟的服务器集群系统,可以在unix/linux平台下实现负载均衡集群功能。该项目在1998年5月由章文嵩博士组织成立。

LVS是一种集群(Cluster)技术,现在LVS已经是 Linux标准内核的一部分,采用IP负载均衡技术和基于内容请求分发技术。

二、LVS的作用

  • 高并发连接:LVS基于内核网络层面工作,有超强的承载能力和并发处理能力。单台LVS负载均衡器,可支持上万并发连接。稳定性强:是工作在网络4层之上仅作分发之用,这个特点也决定了它在负载均衡软件里的性能最强,稳定性最好,对内存和cpu资源消耗极低。
  • 成本低廉:硬件负载均衡器少则十几万,多则几十万上百万,LVS只需一台服务器和就能免费部署使用,性价比极高。
  • 配置简单:LVS配置非常简单,仅需几行命令即可完成配置,也可写成脚本进行管理。
  • 支持多种算法:支持多种论调算法,可根据业务场景灵活调配进行使用
    支持多种工作模型:可根据业务场景,使用不同的工作模式来解决生产环境请求处理问题。
  • 应用范围广:因为LVS工作在4层,所以它几乎可以对所有应用做负载均衡,包括http、数据库、DNS、ftp服务等等

三、lvs的三种工作模式

1.基于NAT的LVS模式负载均衡

LVS负载均衡

NAT(network address translation) 网络地址转换,其主要原理是修改数据报头,使得位于企业内部的私有ip地址可以访问外王,以及外部用户可以访问位于公司内部的私有的ip主机。

工作过程:

(1):用户通过互联网DNS服务器解析到公司负载均衡设备上的外网地址,相对于真实服务器而言,LVS外网ip又称为vip,用户通过访问vip,即可连接后端的真实服务器,而此时用户对这一切都是不可知的,用户认为自己还在访问真实的后端服务器,也不知道自己访问的vip只是一个调度器。

(2):用户将请求发送至调度器上,此时LVS根据算法选择一个后端的真实服务器,将数据请求包转发给真实服务器,并在转发之前LVS会修改数据包中的目标地址以及目标端口,此时修改为真实的服务器ip地址

(3):真实的服务器将响应的数据包返回给LVS调度器,调度器在响应数据包后会将源地址和源端口修改为vip及调度器相应端口,修改完成后,由调度器响应数据包发送给终端

  • LVS调度器中有一个连接Hash表,该表会记录连接请求及其转发信息,当同一个连接下一个数据包发送给调度器时,该Hash’表可以直接找到之前连接的记录,并根据记录信息选出相同真实服务器及其端口信息。
  • NAT的优点时服务器可以运行在任何支持TCP/IP的操作系统,他只需要在调度器上配置一个ip服务器组可以用私有的ip地址。
  • NAT的缺点时伸缩能力有限,当服务器节点数目上升到20时,调度器本身有可能成为系统的新瓶颈,因为请求和响应的报文都需要经过调度器。

2.基于TUN模式的LVS负载均衡

LVS负载均衡
  • LVS(NAT)模式的集群环境中,所有数据包的请求的回应的哦欧需要经过调度器处理,但是在TUN模式中,将NAT模式中的问题有所解决。因为数据包的请求包往往远远小于响应数据包的大小。因为响应数据包中有包含客户需要的具体数据所以,TUN的原理就是将请求与响应数据分离。,让调度器仅仅处理数据请求,让真实的服务器响应数据包直接返回给客户。
  • IP(隧道)是一种数据包分装技术,他可以经原始的数据包分装并添加新的包头(内容包括新的源地址及端口、目标地址及端口),从而实现将一个目标为调度器的vip地址的数据包分装,通过隧道转发给真实的后端服务器,通过将客户端发往调度器的原始数据包分装,并在其基础上添加新的数据包头(修改目标地址为调度器选择出来的真实服务的ip地址以及对应端口),lLVS(Tun)模式要求真实的服务器可以与外部网络连接,真实服务器在受到请求数据包后直接给客户端返回响应数据。
  • LVS(Tun)技术对服务器有要求,即所有服务器必须支持”IP Tunneling”或者IP Encapsulation”协议。目前,VS/TUN 的后端服务器主要运行 Linux 操作系统。

3.LVS(DR)负载模式

LVS负载均衡
  • 在LVS(TUN)模式中,需要LVS调度器与真实的服务器之间创建隧道连接,这样就会增加服务器的负担。DR模式也叫路由模式,该模式中LVS依然仅承担数据的请求以及根据算法调度出合理的后端服务器,最终由后端真实服务器负责响应数据包发送返回给客户端。与隧道模式不同的是,DR模式要求调度器与后端服务器必须在统一个局域网内u,VIP地址需要在调度器与后端所有服务器之间共享,因为最终的真实服务器会给客户端回应数据包时需要设置源IP为VIP,目标IP为客户端IP,这样客户端访问的时调度器VIP地址,回应的源地址也是VIP,这样客户端是感觉不到后端服务器的存在。由于多台计算机都设置了同样的VIP地址,所以在直接路由模式中要求调度器的VIP是对外可见的,客户端将请求数据包发送到调度器主机,而所有的真实服务器的VIP必须配置在Non-ARP的网络上ARP是一个协议。调度器根据算法在选出真实的服务器后,在不修改数据报文的情况下,将数据帧的MAC地址修改为选出的真实的MAC地址,通过交换机将该数据帧发给真实的服务器。

四、LVS管理工具

ipvs:内核中的协议栈上实现

ipvs是LVS软件核心,是允许在LB(负载均衡层)上,这是个基于ip层的负载均衡

ipvs的总体结构主要有ip包处理,负载均衡算法,系统配置和管理三个模块以及虚拟服务器与真实服务器链表组成。

ipvs管理集群服务管理服务上的RS(real server)。

一个ipvs主机可以同时定义多个cluster server,但可能会影响调度性格。

一个ipvs服务至少应该有一个RS。

五、LVS调度算法

静态调度算法(4种):

1、轮询调度rr

均等的对待每一台服务器,不管服务器上的实际连接数和系统负载

2、加权论调wrr

调度器可以自动问询真实服务器的负载情况,并动态调整权值

3、源地址散列调度算法 sh
 与目标地址散列调度算法类似,但它是根据源地址散列算法进行静态分配固定的服务器资源。

4、目标地址散列调度算法 dh
 该算法是根据目标 IP 地址通过散列函数将目标 IP 与服务器建立映射关系,出现服务器不可用或负载过高的情况下,发往该目标 IP 的请求会固定发给该服务器。

动态调度算法(6种)

1、最少链接 lc
 动态地将网络请求调度到已建立的连接数最少的服务器上
如果集群真实的服务器具有相近的系统性能,采用该算法可以较好的实现负载均衡

2、加权最少链接 wlc
 调度器可以自动问询真实服务器的负载情况,并动态调整权值带权重的谁不干活就给谁分配,机器配置好的权重高

3、基于局部性的最少连接调度算法 lblc
这个算法是请求数据包的目标 IP 地址的一种调度算法,该算法先根据请求的目标 IP 地址寻找最近的该目标 IP 地址所有使用的服务器,如果这台服务器依然可用,并且有能力处理该请求,调度器会尽量选择相同的服务器,否则会继续选择其它可行的服务器

4、复杂的基于局部性最少的连接算法 lblcr
 记录的不是要给目标 IP 与一台服务器之间的连接记录,它会维护一个目标 IP 到一组服务器之间的映射关系,防止单点服务器负载过高。

5、最少期望延迟 sed
 不考虑非活动链接,谁的权重大,优先选择权重大的服务器来接收请求,但权重大的机器会比较忙

6、永不排队 nq
无需队列,如果有realserver的连接数为0就直接分配过去

六、搭建HTTP负载均衡集群

1.搭建搭建lvs-nat模式的http负载集群

环境说明:

主机名 主机作用 IP/DIP VIP DR LVS服务器(DR) 192.168.111.141 172.25.0.100 RS1 apache服务器1(RS) 192.168.111.142 网关为DR网关 RS2 apache服务器2(RS) 192.168.111.143 网关为DR网关 client 客户端(用于测试) 192.168.111.144 客户端不需要VIP

DR配置

#关闭防火墙和selinux
[root@DR ~]# sed -ri 's/^(SELINUX=).*/\1disabled/g' /etc/selinux/config
[root@DR ~]# setenforce 0
[root@DR ~]# systemctl disable --now firewalld
#添加网卡
#我这里添加的是仅主机模式网卡,以便区分,网段为:172.25.0.0
[root@DR ~]# nmcli connection show
NAME                UUID                                  TYPE      DEVICE
ens33               d169a480-a2e3-4fe5-89ba-f1f0e022a80f  ethernet  ens33
Wired connection 1  d0f7070b-e2d8-324b-b396-d3d13b0c3c4c  ethernet  ens37
[root@DR ~]# nmcli connection modify Wired\ connection\ 1 con-name ens37 ipv4.addresses 172.25.0.100/24 ipv4.dns 114.114.114.114 ipv4.method manual autoconnect yes
[root@DR ~]# nmcli connection up ens37
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/3)

#开启转发功能
[root@DR ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1

[root@DR ~]# sysctl -p
net.ipv4.ip_forward = 1

RS1配置

#关闭防火墙和selinux
[root@RS1 ~]# sed -ri 's/^(SELINUX=).*/\1disabled/g' /etc/selinux/config
[root@RS1 ~]# setenforce 0
[root@RS1 ~]# systemctl disable --now firewalld

#配置ip
[root@RS1 ~]# nmcli connection modify ens33 ipv4.addresses 192.168.111.142/24 ipv4.gateway 172.25.0.100 ipv4.dns 114.114.114.114 ipv4.method manual autoconnect yes
[root@RS1 ~]# nmcli connection up ens33
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/2)

#配置好httpd,配置网站首页
[root@RS1 ~]# dnf -y install httpd
[root@RS1 ~]# echo "RS1" > /var/www/html/index.html
[root@RS1 ~]# systemctl enable --now httpd

RS2配置

#关闭防火墙和selinux
[root@RS2 ~]# sed -ri 's/^(SELINUX=).*/\1disabled/g' /etc/selinux/config
[root@RS2 ~]# setenforce 0
[root@RS2 ~]# systemctl disable --now firewalld

#配置ip
[root@RS2 ~]# nmcli connection modify ens33 ipv4.addresses 192.168.111.143/24 ipv4.gateway 172.25.0.100 ipv4.dns 114.114.114.114 ipv4.method manual autoconnect yes
[root@RS2 ~]# nmcli connection up ens33
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/2)

#配置好httpd,配置网站首页
[root@RS2 ~]# dnf -y install httpd
[root@RS2 ~]# echo "RS2" > /var/www/html/index.html
[root@RS2 ~]# systemctl enable --now httpd

配置好好两台web服务器后,最后再安装ipvsadm并添加规则

[root@DR ~]# dnf -y install ipvsadm
[root@DR ~]# ipvsadm -A -t 172.25.0.100:80 -s rr
[root@DR ~]# ipvsadm -a -t 172.25.0.100:80 -r 192.168.111.142:80 -m
[root@DR ~]# ipvsadm -a -t 172.25.0.100:80 -r 192.168.111.143:80 -m
[root@DR ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  172.25.0.100:80 rr
  -> 192.168.111.142:80           Masq    1      0          0
  -> 192.168.111.143:80           Masq    1      0          0
[root@DR ~]# ipvsadm -Sn > /etc/sysconfig/ipvsadm
[root@DR ~]# systemctl restart ipvsadm
[root@DR ~]# systemctl enable ipvsadm

客户端进行测试,因为选择的是轮询(rr)

[root@client ~]# curl http://172.25.0.100
RS2
[root@client ~]# curl http://172.25.0.100
RS1
[root@client ~]# curl http://172.25.0.100
RS2
[root@client ~]# curl http://172.25.0.100
RS1

2.搭建搭建lvs-dr模式的http负载集群

环境说明:

主机名 主机作用 IP/DIP VIP DR LVS服务器(DR) 192.168.111.141 lo:192.168.111.200 RS1 apache服务器1(RS) 192.168.111.142 lo:192.168.111.200 RS2 apache服务器2(RS) 192.168.111.143 lo:192.168.111.200 client 客户端 (用于测试) 192.168.111.144 客户端不需要VIP

配置DR

#关闭防火墙和selinux
[root@DR ~]# sed -ri 's/^(SELINUX=).*/\1disabled/g' /etc/selinux/config
[root@DR ~]# setenforce 0
[root@DR ~]# systemctl disable --now firewalld

#配置lo网卡ip
[root@DR ~]# dnf -y install net-tools
[root@DR ~]# ifconfig lo 192.168.111.200/32 broadcast 192.168.111.200 netmask 255.255.255.255 up
[root@DR ~]# ip a |grep lo
1: lo: <loopback,up,lower_up> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 192.168.111.200/0 brd 192.168.111.200 scope global lo

#&#x6C38;&#x4E45;&#x751F;&#x6548;lo&#x7F51;&#x5361;&#x914D;&#x7F6E;
[root@DR ~]# echo "ifconfig lo 192.168.111.200/32 broadcast 192.168.111.200 netmask 255.255.255.255 up" >> /etc/rc.d/rc.local
[root@DR ~]# chmod +x /etc/rc.d/rc.local
</loopback,up,lower_up>

RS1配置

#&#x5173;&#x95ED;&#x9632;&#x706B;&#x5899;&#x548C;selinux
[root@RS1 ~]# sed -ri 's/^(SELINUX=).*/\1disabled/g' /etc/selinux/config
[root@RS1 ~]# setenforce 0
[root@RS1 ~]# systemctl disable --now firewalld

#RS1&#x4E0A;&#x914D;&#x7F6E;&#x5185;&#x6838;&#x53C2;&#x6570;
[root@RS1 ~]# vim /etc/sysctl.conf
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
[root@RS1 ~]# sysctl -p
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2

#&#x914D;&#x7F6E;VIP
[root@RS1 ~]# dnf -y install net-tools
[root@RS1 ~]# ifconfig lo 192.168.111.200/32 broadcast 192.168.111.200 netmask 255.255.255.255 up

#&#x6C38;&#x4E45;&#x751F;&#x6548;lo&#x7F51;&#x5361;&#x914D;&#x7F6E;
[root@RS1 ~]# echo "ifconfig lo 192.168.111.200/32 broadcast 192.168.111.200 netmask 255.255.255.255 up" >> /etc/rc.d/rc.local
[root@RS1 ~]# chmod +x /etc/rc.d/rc.local

#&#x6DFB;&#x52A0;&#x8DEF;&#x7531;
[root@RS1 ~]# route add -host 192.168.111.200/32 dev lo

#&#x5B89;&#x88C5;httpd&#x670D;&#x52A1;&#xFF0C;&#x7136;&#x540E;&#x914D;&#x7F6E;&#x597D;&#x7F51;&#x7AD9;&#x9996;&#x9875;
[root@RS1 ~]# dnf -y install httpd
[root@RS1 ~]# echo "RS1" > /var/www/html/index.html
[root@RS1 ~]# systemctl enable --now httpd

RS2配置

#&#x5173;&#x95ED;&#x9632;&#x706B;&#x5899;&#x548C;selinux
[root@RS2 ~]# sed -ri 's/^(SELINUX=).*/\1disabled/g' /etc/selinux/config
[root@RS2 ~]# setenforce 0
[root@RS2 ~]# systemctl disable --now firewalld

#RS2&#x4E0A;&#x914D;&#x7F6E;&#x5185;&#x6838;&#x53C2;&#x6570;
[root@RS2 ~]# vim /etc/sysctl.conf
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
[root@RS2 ~]# sysctl -p
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2

#&#x914D;&#x7F6E;VIP
[root@RS2 ~]# dnf -y install net-tools
[root@RS2 ~]# ifconfig lo 192.168.111.200/32 broadcast 192.168.111.200 netmask 255.255.255.255 up

#&#x6C38;&#x4E45;&#x751F;&#x6548;lo&#x7F51;&#x5361;&#x914D;&#x7F6E;
[root@RS2 ~]# echo "ifconfig lo 192.168.111.200/32 broadcast 192.168.111.200 netmask 255.255.255.255 up" >> /etc/rc.d/rc.local
[root@RS2 ~]# chmod +x /etc/rc.d/rc.local

#&#x6DFB;&#x52A0;&#x8DEF;&#x7531;
[root@RS2 ~]# route add -host 192.168.111.200/32 dev lo

#&#x5B89;&#x88C5;httpd&#x670D;&#x52A1;&#xFF0C;&#x7136;&#x540E;&#x914D;&#x7F6E;&#x597D;&#x7F51;&#x7AD9;&#x9996;&#x9875;
[root@RS2 ~]# dnf -y install httpd
[root@RS2 ~]# echo "RS2" > /var/www/html/index.html
[root@RS2 ~]# systemctl enable --now httpd

配置好好两台web服务器后,最后再安装ipvsadm并添加规则

[root@RS2 ~]# ipvsadm -A -t 192.168.111.200:80 -s rr
[root@RS2 ~]# ipvsadm -a -t 192.168.111.200:80 -r 192.168.111.142:80 -g
[root@RS2 ~]# ipvsadm -a -t 192.168.111.200:80 -r 192.168.111.143:80 -g
[root@RS2 ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.111.200:80 rr
  -> 192.168.111.142:80           Route   1      0          0
  -> 192.168.111.143:80           Route   1      0          0
[root@RS2 ~]# ipvsadm -Sn > /etc/sysconfig/ipvsadm
[root@RS2 ~]# systemctl restart ipvsadm
[root@RS2 ~]# systemctl enable ipvsadm

客户端进行测试,因为选择的是轮询(rr)

[root@client ~]# curl 192.168.111.200
RS1
[root@client ~]# curl 192.168.111.200
RS2
[root@client ~]# curl 192.168.111.200
RS1
[root@client ~]# curl 192.168.111.200
RS2

3.搭建搭建lvs-dr模式的https负载集群

环境说明:

主机名 主机作用 IP/DIP VIP DR LVS服务器(DR) 192.168.111.141 lo:192.168.111.200 RS1 apache服务器1(RS) 192.168.111.142 lo:192.168.111.200 RS2 apache服务器2(RS) 192.168.111.143 lo:192.168.111.200 client 客户端 (用于测试) 192.168.111.144 客户端不需要VIP

DR配置

#&#x5173;&#x95ED;&#x9632;&#x706B;&#x5899;&#x548C;selinux
[root@DR ~]# sed -ri 's/^(SELINUX=).*/\1disabled/g' /etc/selinux/config
[root@DR ~]# setenforce 0
[root@DR ~]# systemctl disable --now firewalld

#&#x914D;&#x7F6E;lo&#x7F51;&#x5361;ip
[root@DR ~]# dnf -y install net-tools
[root@DR ~]# ifconfig lo 192.168.111.200/32 broadcast 192.168.111.200 netmask 255.255.255.255 up
[root@DR ~]# ip a |grep lo
1: lo: <loopback,up,lower_up> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 192.168.111.200/0 brd 192.168.111.200 scope global lo

#&#x6C38;&#x4E45;&#x751F;&#x6548;lo&#x7F51;&#x5361;&#x914D;&#x7F6E;
[root@DR ~]# echo "ifconfig lo 192.168.111.200/32 broadcast 192.168.111.200 netmask 255.255.255.255 up" >> /etc/rc.d/rc.local
[root@DR ~]# chmod +x /etc/rc.d/rc.local
</loopback,up,lower_up>

RS1配置

`

关闭防火墙和selinux

[root@RS1 ~]# sed -ri ‘s/^(SELINUX=).*/\1disabled/g’ /etc/selinux/config
[root@RS1 ~]# setenforce 0
[root@RS1 ~]# systemctl disable –now firewalld

RS1上配置内核参数

[root@RS1 ~]# vim /etc/sysctl.conf
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
[root@RS1 ~]# sysctl -p
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2

配置VIP

[root@RS1 ~]# dnf -y install net-tools
[root@RS1 ~]# ifconfig lo 192.168.111.200/32 broadcast 192.168.111.200 netmask 255.255.255.255 up

永久生效lo网卡配置

[root@RS1 ~]# echo “ifconfig lo 192.168.111.200/32 broadcast 192.168.111.200 netmask 255.255.255.255 up” >> /etc/rc.d/rc.local
[root@RS1 ~]# chmod +x /etc/rc.d/rc.local

添加路由

[root@RS1 ~]# route add -host 192.168.111.200/32 dev lo

安装httpd服务,然后配置好网站首页

[root@RS1 ~]# dnf -y install httpd mod_ssl
[root@RS1 ~]# vim /etc/httpd/conf.modules.d/00-base.conf
LoadModule ssl_module modules/mod_ssl.so
[root@RS1 ~]# mkdir /etc/httpd/ssl
[root@RS1 ~]# cd /etc/httpd/ssl
[root@RS1 ssl]# openssl genrsa -out httpd.key 2048
Generating RSA private key, 2048 bit long modulus (2 primes)
……..+++++
…………………………………………+++++
e is 65537 (0x010001)
[root@RS1 ssl]# openssl req -new -key httpd.key -out httpd.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.

What you are about to enter is what is called a Distinguished Name or a DN.

There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.’, the field will be left blank.

Original: https://www.cnblogs.com/Their-own/p/16735490.html
Author: 事愿人为
Title: LVS负载均衡

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/611792/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Linux常用指令

    Linux常用指令 到达底部 运行级别有以下几种 0级:关机 1级:单用户 (找回密码) 2级: 多用户没有网络服务 3级: 多用户有网络服务 4级: 系统未使用保留给用户 5级:…

    数据库 2023年6月16日
    089
  • Mysql事件调度实现字段自动刷新

    mysql中事件与触发器,触发器是当mysql运行起来之后因某些设定的语句而触发执行,事件则可自定义一次或者周期性执行的任务,在mysql中有特定的线程来管理它,即”事…

    数据库 2023年5月24日
    090
  • Mysql-5.7主从部署-yum方式

    一、环境准备 rpm -qa |grep mariadb |xargs yum remove -y setenforce 0(临时关闭),(selinux配置文件:SELINUX=…

    数据库 2023年5月24日
    066
  • 18-网络七层架构

    七层架构主要包括 ①、 物理层 主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流(就是由 1、0 转化为电流强弱来进行传输…

    数据库 2023年6月16日
    078
  • CSS进阶内容——布局技巧和细节修饰

    CSS进阶内容——布局技巧和细节修饰 我们在之前的文章中已经掌握了CSS的大部分内容,但仍有一些内容我们没有涉略,这篇文章就是为了补充前面没有涉及的内容,为我们的知识做出补充并且介…

    数据库 2023年6月14日
    082
  • iptables快速入门

    iptables简介 在生产实践过程中,为了保证生产安全,通常需要进行数据加密,例如通过网络层面上将应用隔离成内网和公网应用,内网再分成生产、测试、开发、DMZ等区域,然后进行不同…

    数据库 2023年6月14日
    0103
  • HTTP状态码1XX深入理解

    前段时间看了《御赐小仵作》,里面有很多细节很有心。看了一些评论都是:终于在剧里能够看到真正在搞事业、发了工资第一时间还钱的正常人了。我印象比较深的是王府才能吃上的葡萄。觉得非常合理…

    数据库 2023年6月6日
    0100
  • zabbix 报表动作日志 报错”503“

    本文来自博客园,作者:xiao智,转载请注明原文链接:https://www.cnblogs.com/yuwen01/p/16216868.html Original: https…

    数据库 2023年6月14日
    083
  • ansible碎碎念

    Using a SSH password instead of a key is not possible because Host Key checking is enabled…

    数据库 2023年6月11日
    076
  • 链表的知识总结

    链式结构内存不连续的,而是一个个串起来的,每个链接表的节点保存一个指向下一个节点的指针。 ⭐ 链式结构包含:node(节点)还有value(值),由于内存不连续的,那么对于数据的插…

    数据库 2023年6月16日
    094
  • MySQL日志

    一、错误日志 错误日志是MySQL中最重要的日志之一,它记录了当mysqld启动和停止时,以及服务器在运行过程中发生任何严重错误时的相关信息。当数据库出现任何故障导致无法正常使用时…

    数据库 2023年5月24日
    0104
  • MySQL&MariaDB数据库备份脚本

    MySQL&MariaDB数据库备份脚本 MySQL&MariaDB数据库备份脚本 MySQL & MariaDB .bat backup.sh MySQL…

    数据库 2023年6月9日
    079
  • 编程书单

    前言 : 一开始我是不太关注技术书的, 但是直到在知乎看到了北邮人论坛转载的那个书单之后, 我才开始关注技术书尤其是技术书单. 现在我认为读技术书的效果会比看视频效果好, 但是最高…

    数据库 2023年6月11日
    075
  • fiddler相关随笔(网络异常、证书问题、配置代理)

    fiddler中遇到的坑 最近用fiddler实在是太频繁,经常开关,也不清理之前的代理配置,导致很多时候,电脑连不上网,大概有以下场景 * fiddler提示某网站要求上传相关证…

    数据库 2023年6月6日
    086
  • Python第二十一天 fileinput模块

    Python第二十一天 fileinput模块 fileinput模块 fileinput.input([files[, inplace[, backup[, bufsize[, …

    数据库 2023年6月9日
    085
  • MySQL的权限管理和Linux下的常用命令

    1.管理用户: root,具有最高权限,具有创建用户的权限,可以为其他用户授权 2.普通用户: 普通由root用户创建,权限由root分配 — mysql创建用户: create…

    数据库 2023年6月16日
    061
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球