LVS的三种工作模式---(DR/TUN/NAT)

news2024/9/22 10:00:28

目录

一、NAT模式(LVS-NAT)

二、IP隧道模式(LVS-TUN)

三、DR模型--直接路由模式(LVS-DR)

LVS/DR模式ARP抑制

 原因:

LVS的DR工作模式及配置:

LVS的NAT工作模式及配置:


一、NAT模式(LVS-NAT)

原理:就是把客户端发来的数据包的IP头的目的地址,在负载均衡器上换成其中一台RS的IP地址,并发至此真实服务器RS来处理,RS处理完成后把数据交给经过负载均衡器,负载均衡器再把数据包的原IP地址改为自己的IP,将目的地址改为客户端IP地址即可。

在整个过程中,负载调度作为NAT设备,负责将请求数据包的源IP从客户端IP转换为负载调度器的VIP(虚拟IP),并将响应数据包的源IP从真实服务器的私有IP转换回VIP

二、IP隧道模式(LVS-TUN)

       调度器把请求的报文通过 IP 隧道转发到真实的服务器。真实的服务器将响应处理后的数据直接返回给客户端。这样调度器就只处理请求入站报文,由于一般网络服务应答数据比请求报文大很多,采用 lvs-tun 模式后,可以大大的减少对负载调度器的压力,集群系统的最大吞吐量可以提高 10 倍

三、DR模型--直接路由模式(LVS-DR)

      客户端向目标vip发出请求,lvs接收 ,LVS根据负载均衡算法选择一台活跃的的节点,将此节点的ip所在网卡的mac地址作为目标mac地址,发送到局域网里

节点在局域网中收到这个帧,拆开后发现目标IP(VIP)与本地匹配,于是处理这个报文.随后重新封装报文,发送到局域网.此时IP包的目标ip是客户端,源ip是自己的vip地址。

LVS的DR工作模式及配置:

环境准备:

四台openEuler操作系统的虚拟机

openEuler node1充当前端的负载调度器

openEuler node2充当客户端测试

openEuler node3充当后端web服务器

openEuler node4充当后端web服务器

关闭所有防火墙和selinux

openEuler node3和openEuler node4 :

添加dummy类型的接口VIP:

[root@node1 ~]# nmcli connection add type dummy ifname dummy1 ipv4.method manual ipv4.addresses 192.168.182.140/24

[root@node3 ~]# nmcli con add type dummy ifname dummy1 ipv4.method manual ipv4.addresses 192.168.182.140/24

[root@node4 ~]# nmcli connection add type dummy ifname dummy1 ipv4.method manual ipv4.addresses 192.168.182.140/24

修改相应的ARP内核配置(ARP的抑制)

[root@node3 ~]# cat >> /etc/sysctl.conf << EOF

net.ipv4.conf.all.arp_ignore=1

net.ipv4.conf.all.arp_announce=2

net.ipv4.conf.dummy1.arp_ignore=1

net.ipv4.conf.dummy1.arp_announce=2

EOF

[root@node3~]# sysctl -p           使其生效

[root@node4 ~]# cat >> /etc/sysctl.conf << EOF

net.ipv4.conf.all.arp_ignore=1

net.ipv4.conf.all.arp_announce=2

net.ipv4.conf.dummy1.arp_ignore=1

net.ipv4.conf.dummy1.arp_announce=2

EOF

[root@node4~]# sysctl -p           使其生效

准备web站点:

[root@node3 ~]# dnf install nginx -y

[root@node4 ~]# dnf install nginx -y

提供默认主页:

[root@node3 ~]# echo "web test page,my ip is`hostname -I`." > /usr/share/nginx/html/index.html

[root@node3 ~]# systemctl start nginx

[root@node4 ~]# echo "web test page,my ip is`hostname -I`." > /usr/share/nginx/html/index.html

[root@node4 ~]# systemctl start nginx

openEuler node2:测试

[root@node2 ~]# curl 192.168.182.144

web test page,my ip is192.168.182.144 192.168.182.140 .

[root@node2 ~]# curl 192.168.182.143

web test page,my ip is192.168.182.143 172.17.0.1 192.168.182.140 .

准备安装工具:

[root@node1 ~]# dnf install ipvsadm -y

几种常见的算法:

rr

轮循调度(Round-Robin),它将请求依次分配不同的RS,也就是在RS中均摊请求。这种

算法简单,但是只适合于处理性能相差不大的情况

wrr

加权轮循调度(Weighted Round-Robin)它将依据不同RS的权值分配任务。权值较高的

RS将优先获得任务,并且分配到的连接数将比权值较低的RS更多。相同权值的RS得到相

同数目的连接数。

wlc

加权最小连接数调度(weighted leastconnection)假设各台RS的权值依次为wi

(i=1..n),当前的TCP连接数依次为Ti(i=1..n),依次选取Ti/Wi为最小的RS作为下一个

分配的RS。

lc

最小连接数调度(Least-Connection),IPVS表存储了所有的活动的连接。把心的连接请

求发送到当前连接数最小的RS。

负载均衡器:

[root@node1 ~]# ipvsadm -At 192.168.182.140:80 -s  rr   

[root@node1 ~]# ipvsadm -at 192.168.182.140:80 -r 192.168.182.143:80

[root@node1 ~]# ipvsadm -at 192.168.182.140:80 -r 192.168.182.144:80

[root@node1 ~]# 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.182.140:80 wlc

  -> 192.168.182.143:80           Route   1      0          0        

  -> 192.168.182.144:80           Route   1      0          0

测试:

[root@node2 ~]# for ((i=1;i<=6;i++));do curl 192.168.182.140;done

web test page,my ip is192.168.182.143 172.17.0.1 192.168.182.140 .

web test page,my ip is192.168.182.144 192.168.182.140 .

web test page,my ip is192.168.182.143 172.17.0.1 192.168.182.140 .

web test page,my ip is192.168.182.144 192.168.182.140 .

web test page,my ip is192.168.182.143 172.17.0.1 192.168.182.140 .

web test page,my ip is192.168.182.144 192.168.182.140 .

加权轮询调度算法:

[root@node1 ~]# ipvsadm -At 192.168.182.140:80 -s  wrr   

[root@node1 ~]# ipvsadm -at 192.168.182.140:80 -r 192.168.182.144:80    不指定默认为1

[root@node1 ~]# ipvsadm -at 192.168.182.140:80 -r 192.168.182.143:80 -w 2    指定143web服务器为2

[root@node1 ~]# 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.182.140:80 wrr

  -> 192.168.182.143:80           Route   2      0          3        

  -> 192.168.182.144:80           Route   1      0          3

测试:

[root@node2 ~]# for ((i=1;i<=6;i++));do curl 192.168.182.140;done

web test page,my ip is192.168.182.144 192.168.182.140 .

web test page,my ip is192.168.182.143 172.17.0.1 192.168.182.140 .

web test page,my ip is192.168.182.143 172.17.0.1 192.168.182.140 .

web test page,my ip is192.168.182.144 192.168.182.140 .

web test page,my ip is192.168.182.143 172.17.0.1 192.168.182.140 .

web test page,my ip is192.168.182.143 172.17.0.1 192.168.182.140 .

常用命令:

[root@node1 ~]# ipvsadm -Sn > /etc/sysconfig/ipvsadm    保存这个加权轮询调度算法

[root@node1 ~]# cat /etc/sysconfig/ipvsadm

-A -t 192.168.182.140:80 -s wrr

-a -t 192.168.182.140:80 -r 192.168.182.143:80 -g -w 2

-a -t 192.168.182.140:80 -r 192.168.182.144:80 -g -w 1

[root@node1 ~]# ipvsadm -C   清除

[root@node1 ~]# ipvsadm -Ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

  -> RemoteAddress:Port           Forward Weight ActiveConn InActCon

[root@node1 ~]# ipvsadm -R < /etc/sysconfig/ipvsadm   恢复

[root@node1 ~]# 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.182.140:80 wrr

  -> 192.168.182.143:80           Route   2      0          0        

  -> 192.168.182.144:80           Route   1      0          0  

删除VIP接口:

[root@node1 ~]# nmcli connection  delete dummy-dummy1

成功删除连接 "dummy-dummy1" (bfe8c98b-1e87-4cf9-b3b7-49f2ca4699a9)。

ARP抑制:

[root@node3 ~]# cat /proc/sys/net/ipv4/conf/all/arp_ignore

1

另一种方法:使用arptables工具来做arp抑制

[root@node1 ~]# dnf install arptables -y

[root@node1 ~]# arptables -A INPUT -d 192.168.182.140 -j DROP    抑制dummy-dummy1这个接口流量的流入

[root@node1 ~]# arptables -A OUTPUT -s 192.168.182.140 -j mangle --mangle-ip-s 192.168.182.140

[root@node1 ~]# arptables-save > /etc/sysconfig/arptables   保存

[root@node1 ~]# arptables -F

[root@node1 ~]# arptables -L -n

Chain INPUT (policy ACCEPT)

Chain OUTPUT (policy ACCEPT)

Chain FORWARD (policy ACCEPT)

[root@node1 ~]# arptables-restore < /etc/sysconfig/arptables    恢复

[root@node1 ~]# arptables -L -n

Chain INPUT (policy ACCEPT)

-j DROP -d 192.168.182.140

Chain OUTPUT (policy ACCEPT)

-j mangle -s 192.168.182.140 --mangle-ip-s 192.168.182.140

Chain FORWARD (policy ACCEPT)

[root@node1 ~]#

LVS的NAT工作模式及配置:

环境准备:准备4台openEuler操作系统的虚拟机

openEuler node1充当前端的负载调度器

openEuler node2充当客户端测试

openEuler node3充当后端web服务器

openEuler node4充当后端web服务器

VMWARE

openEuler node1上增加网络适配器并改为仅主机模式

openEuler node3上网络适配器改为仅主机模式

openEuler node4上网络适配器改为仅主机模式

[root@node1 ~]# nmcli connection add type ethernet ifname ens224 ipv4.method manual ipv4.addresses 10.10.10.21/24

在openEuler node3和openEuler node4上使用nmtui命令修改ip地址分别是10.10.10.2310.10.10.24,网关都指向10.10.10.21的内网,无DNS

[root@node1 ~]# echo  1 > /proc/sys/net/ipv4/ip_forward     开启路由转发

开启路由转发:

临时开启:

方法1 echo 1 > /proc/sys/net/ipv4/ip_forward

方法2 sysctl -w net.ipv4.ip_forward=1

永久开启:

Vim /etc/sysctl.conf

准备web站点:

[root@node3 ~]# dnf install nginx -y

[root@node4 ~]# dnf install nginx -y

提供默认主页:

[root@node3 ~]# echo "web test page,my ip is`hostname -I`." > /usr/share/nginx/html/index.html

[root@node3 ~]# systemctl start nginx

[root@node4 ~]# echo "web test page,my ip is`hostname -I`." > /usr/share/nginx/html/index.html

[root@node4 ~]# systemctl start nginx

[root@node1 ~]# ipvsadm -At 192.168.182.141:80 -s  rr   

[root@node1 ~]# ipvsadm -at 192.168.182.141:80 -r 10.10.10.23:80  -m   指定目标为NAT转发模式

[root@node1 ~]# ipvsadm -at 192.168.182.141:80 -r 10.10.10.24:80  -m   指定目标为NAT转发模式

[root@node1 ~]# 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.182.141:80 rr

  -> 10.10.10.23:80                        Masq     1              0                      0        

  -> 10.10.10.24:80                        Masq     1              0                      0

测试:

[root@node2 ~]# for ((i=1;i<=6;i++));do curl 192.168.182.141;done

web test page,my ip is 10.10.10.23.

web test page,my ip is 10.10.10.24.

web test page,my ip is 10.10.10.23.

web test page,my ip is 10.10.10.24.

web test page,my ip is 10.10.10.23.

web test page,my ip is 10.10.10.24.

[root@node1 ~]# ipvsadm -Et 192.168.182.141:80 -s wrr -p 60   60秒内都由某个服务器来提供响应

[root@node1 ~]# iptables -t mangle -A PREROUTING -d 192.168.182.141 -p tcp --dport 80 -j MARK --set-mark 10

# 添加一个防火墙规则,当目标地址为 192.168.182.141 并且 目标端口为 80 时给数据包打一

个标记,设置mark 值为 10

[root@node1 ~]# iptables -t mangle -A PREROUTING -d 192.168.182.141 -p tcp --dport 443 -j MARK --set-mark 10

# 添加一个防火墙规则,当目标地址为 192.168.182.141 并且 目标端口为 443 时给数据包打一个标记,

设置mark 值为 10

[root@node1 ~]# ipvsadm -A -f 10 -s rr -p 100 # 添加一个负载调度器,当 mark 值为 10 时进行负载均衡使  轮询算法,持久化时间100

[root@node1 ~]# ipvsadm -a -f 10 -r 10.10.10.23:80 -m

[root@node1 ~]# ipvsadm -a -f 10 -r 10.10.10.24:80 -m

[root@node1 ~]# ipvsadm -Ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

FWM  10 rr persistent 100

  -> 10.10.10.23:80               Masq    1      0          0        

  -> 10.10.10.24:80               Masq    1      0          0        

测试:

[root@node2 ~]# for ((i=1;i<=6;i++));do curl 192.168.182.141;done

web test page,my ip is 10.10.10.24.

web test page,my ip is 10.10.10.24.

web test page,my ip is 10.10.10.24.

web test page,my ip is 10.10.10.24.

web test page,my ip is 10.10.10.24.

web test page,my ip is 10.10.10.24.

[root@node1 ~]# ipvsadm -D -f 10 删除

[root@node1 ~]# ipvsadm -Ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

openEuler版本自带iptables

[root@node1 ~]# iptables -t mangle -L -n

Chain PREROUTING (policy ACCEPT)

target     prot opt source               destination        

MARK       tcp  --  0.0.0.0/0            192.168.182.141      tcp dpt:80 MARK set 0xa

MARK       tcp  --  0.0.0.0/0            192.168.182.141      tcp dpt:443 MARK set 0xa

Chain INPUT (policy ACCEPT)

target     prot opt source               destination        

Chain FORWARD (policy ACCEPT)

target     prot opt source               destination        

Chain OUTPUT (policy ACCEPT)

target     prot opt source               destination        

Chain POSTROUTING (policy ACCEPT)

target     prot opt source               destination  

[root@node1 ~]# iptables -t mangle -F  清空防火墙

问题:

LVS没有健康检测功能

LVS存在单点故障

解决方法:使用ldirectord第三方软件工具

[root@node1 ~]# dnf install ldirectord

[root@node1 ~]# vim /etc/ha.d/ldirectord.cf

quiescent=no

virtual=192.168.182.141:80

        servicename=Web Site

        comment=Test load balanced web site

        real=10.10.10.23:80 masq

        real=10.10.10.24:80 masq

        #fallback=127.0.0.1:80 gate

        service=http

        scheduler=rr

        #persistent=600

        #netmask=255.255.255.255

        protocol=tcp

        checktype=negotiate

        checkport=80

        request="index.html"

        receive="test page"

[root@node1 ~]# systemctl start ldirectord.service

测试:模拟一台服务器不工作时:

[root@node3 ~]# systemctl stop nginx.service    模拟关闭nginx服务

[root@node1 ~]# watch ipvsadm -Ln

Every 2.0s: ipvsadm -Ln          node1: Tue Apr 16 16:12:38 2024

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

  -> RemoteAddress:Port           Forward Weight ActiveConn InAc

tConn

TCP  192.168.182.141:80 rr

  -> 10.10.10.24:80               Masq    1         0          0

[root@node2 ~]# for ((i=1;i<=8;i++));do curl 192.168.182.141; done

web test page , ip is 10.10.10.24 .

web test page , ip is 10.10.10.24 .

web test page , ip is 10.10.10.24 .

web test page , ip is 10.10.10.24 .

web test page , ip is 10.10.10.24 .

web test page , ip is 10.10.10.24 .

web test page , ip is 10.10.10.24 .

web test page , ip is 10.10.10.24 .

[root@node1 ~]# yum install nginx -y

[root@node1 ~]# vim /etc/nginx/nginx.conf

[root@node1 ~]# echo "服务器维护中..." > /usr/share/nginx/html/index.html

[root@node1 ~]# systemctl start nginx.service

[root@node1 ~]# vim /etc/ha.d/ldirectord.cf

quiescent=no

checktimeout=3

checkinterval=1

autoreload=yes

#fallback=127.0.0.1:8080

virtual=192.168.182.141:80

        servicename=Web Site

        comment=Test load balanced web site

        real=10.10.10.23:80 masq

        real=10.10.10.24:80 masq

        fallback=10.10.10.21:8080 masq

        service=http

        scheduler=rr

        #persistent=600

        #netmask=255.255.255.255

        protocol=tcp

        checktype=negotiate

        checkport=80

        request="index.html"

        receive="test page"

测试:模拟两台服务器都不工作:

[root@node3 ~]# systemctl stop nginx.service

[root@node4 ~]# systemctl stop nginx.service

[root@node1 ~]# watch ipvsadm -Ln

Every 2.0s: ipvsadm -Ln                                                                               node1: Tue Apr 16 16:38:28 2024

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  192.168.182.141:80 rr

  -> 10.10.10.21:8080             Masq    1         0          0

[root@node2 ~]# for ((i=1;i<=8;i++));do curl 192.168.182.141; done

服务器维护中...

服务器维护中...

服务器维护中...

服务器维护中...

服务器维护中...

服务器维护中...

服务器维护中...

服务器维护中...

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

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

相关文章

邂逅Linux--常见指令,万物为文件(一)

引子&#xff1a;在之前&#xff0c;我们经常听到Linux&#xff0c;那什么是Linux呢&#xff1f;Linux是一种免费使用和自由传播的类UNIX操作系统&#xff0c;其内核由林纳斯本纳第克特托瓦兹&#xff08;Linus Benedict Torvalds&#xff09;于1991年10月5日首次发布&#xff…

命令行工具部署达梦数据库 DMDPC(BP 多副本架构)

解达梦数据库DPC集群的主要使用场景&#xff1a; DMDPC 关注和解决的是大数据、计算与存储分离、高可用、支持全部的 SQL 标准、拥有完整的事务处理能力和集群规模能够动态伸缩的业务场景&#xff1a; 大量的复杂查询操作要求优化器能够生成优良的执行计划&#xff0c;并且执…

0基础理解ECC并做题-攻防世界easy-ECC理解

基点p就是最初选定的那个点 1和2都是整数集合&#xff0c;但是1/20.5就不属于整数集合 一直加&#xff0c;一直乘&#xff0c;还能保证有限个数字&#xff1f;这是因为采用了取模的运算&#xff0c;让元素始终都在有限的范围内。 如何计算分数求模&#xff1f; 设n1/2mod23,那么…

使用注解的方式进行配置RabbitMQ

引入依赖&#xff1a; <dependency><groupId>org.springframework.amqp</groupId><artifactId>spring-rabbit-test</artifactId><scope>test</scope></dependency> 配置application.yml server:port: 8082 spring:rabbitmq…

Coze扣子开发指南:AI零代码编程创建插件

在Coze扣子中创建插件&#xff0c;有两种方式&#xff0c;一是用API&#xff0c;具体方式参照上一篇文章《Coze扣子开发指南&#xff1a;用免费API自己创建插件》&#xff0c;还有一种方式就是编程&#xff0c;不过有了AI的帮助&#xff0c;即使不会编程的人&#xff0c;也可以…

如何清除DNS缓存,刷新DNS

大家在使用域名访问服务器的时候&#xff0c;经常会遇到一个问题&#xff0c;同一个局域网里的两台电脑&#xff0c;一台可以访问而另一台不行。这是为什么呢&#xff1f;这里我要和大家说下DNS缓存的问题&#xff0c;顾名思义&#xff0c;每台电脑都有DNS缓存&#xff0c;在域…

MyBatis-plus(一):快速入门

目录 一、MyBatis-plus 快速入门 1、原理 2、实体类命名规则 3、常见注解 4、主键 id 策略 5、使用 TableField 的常见场景 6、常用配置 二、核心功能 1、条件构造器 2、自定义 SQL 3、IService 接口 一、MyBatis-plus 快速入门 1、原理 MyBatisPlus 通过扫描实体…

Leetcode 剑指 Offer II 077.排序链表

题目难度: 中等 原题链接 今天继续更新 Leetcode 的剑指 Offer&#xff08;专项突击版&#xff09;系列, 大家在公众号 算法精选 里回复 剑指offer2 就能看到该系列当前连载的所有文章了, 记得关注哦~ 题目描述 给定链表的头结点 head &#xff0c;请将其按 升序 排列并返回 排…

STM32入门_江协科技_5~6_OB记录的自学笔记_GPIO输出_LED流水灯_蜂鸣器

5. GPIO 输出 5.1. GPIO简介 GPIO&#xff08;General Purpose Input Output&#xff09;通用输入输出口可配置为8种输入输出模式引脚电平&#xff1a;0V~3.3V&#xff0c;部分引脚可容忍5V&#xff08;端口输入5V的电压&#xff0c;之前引脚定义表格中带FT标识的&#xff09…

暗区突围哪里获得测试资格 暗区突围测试资格获取方法

在游戏业界的浩瀚星空中&#xff0c;《暗区突围》如同一颗璀璨新星&#xff0c;以其独树一帜的游戏模式和前所未有的沉浸式体验&#xff0c;迅速吸引了全球玩家的目光。它不仅仅是一款游戏&#xff0c;更像是一次对勇气、智慧与团队合作的深度探索。玩家在危机四伏的暗区中&…

【软考高项】四十四、高级项目管理

一、项目集管理 相关角色 项目集发起人、项目集指导委员会、项目集经理、其他影响项目集的干系人项目集管理绩效域 项目集战略一致性、项目集效益管理、项目集干系人参与、项目集治理和项目集生命周期管理 二、项目组合管理 项目组合经理角色 项目组合管理原…

软件测试报告(交付文档支撑word原件)

软件测试报告在软件开发过程中起着至关重要的作用&#xff0c;主要有以下几个主要原因&#xff1a; 1、确保软件质量 2、提供决策支持 3、记录测试过程和结果 4、促进沟通和协作 5、符合标准和法规要求 6、改进测试流程和策略 7、降低风险 软件开发全套资料获取进主页或者本文…

【字符函数与字符串函数】

文章目录 一、strlen函数1.strlen函数的使用2.strlen函数的模拟实现(1)计算器办法(2)不创建临时变量计数器(3)指针 二、strcpy函数1、strcpy函数的使用2、strcpy函数的模拟实现 三、strcat函数1、strcat函数的使用2、strcat模拟实现3、字符串自己给自己追加&#xff1f; 四、st…

2024年数维杯数学建模

高质量原创论文已完成 需要的私我

构建内网yum仓库

1、环境介绍 系统&#xff1a;龙蜥os 7.9 2、安装epel源 yum install epel-release -y3、安装nginx服务器并启动 yum install nginx httpd -y配置 server {listen 80;server_name repo.wtown.com;root /usr/share/nginx/html/repo;index index.html index.htm;location / {…

信息安全-古典密码学简介

目录 C. D. Shannon: 一、置换密码 二、单表代替密码 ① 加法密码 ② 乘法密码 ③密钥词组代替密码 三、多表代替密码 代数密码 四、古典密码的穷举分析 1、单表代替密码分析 五、古典密码的统计分析 1、密钥词组单表代替密码的统计分析 2、英语的统计规…

报表-集成

1、部署报表服务器 以centos为例 1.1 将服务拷贝到服务器 其中JDK-17是对应平台的jdk 1.2 修改lite-report下的source.config 1.3 把设计好的报表文件拷贝到lite-report/report 1.4 启动服务&#xff1a;sh run.sh restart 2、使用Nginx location /litereport/ { …

前端笔记-day1

文章目录 01-标签的写法02-HTML的基本骨架03-标签的关系04-注释05-标题标签06-段落标签07-换行与水平线标签08-文本格式化标签09-图像的基本使用10-图像的属性12-绝对路径13-超链接14-音频15-视频标签16-招聘案例18-个人简历19-vue简介 01-标签的写法 <strong>文字内容&…

LabVIEW开发MOOG控制系统数据处理软件

LabVIEW开发MOOG控制系统数据处理软件 在现代航空领域&#xff0c;飞机结构的静强度试验是保证飞机安全运行的关键环节。MOOG加载控制系统作为试验中的关键设备&#xff0c;其数据输出的直观性和易处理性对于提高试验效率具有重要意义。设计了一种基于LabVIEW的MOOG控制系统数…

##15 探索高级数据增强技术以提高模型泛化能力

文章目录 前言数据增强的重要性常见的数据增强技术高级数据增强技术在PyTorch中实现数据增强结论 前言 在深度学习领域&#xff0c;数据增强是一种有效的技术&#xff0c;它可以通过在原始数据上应用一系列变换来生成新的训练样本&#xff0c;从而增加数据的多样性&#xff0c…