Nginx location+Nginx rewrite(重写)(新版)

Nginx location+Nginx rewrite(重写)

  • Nginx location+Nginx rewrite(重写)
    • 一、location
      • 1、常用的Nginx 正则表达式
      • 2、location的类型
      • 3、location 的匹配规则
      • 4、location 优先级
      • 5、location 示例说明
        • 5.1只修改网页路径
        • 5.2修改nginx配置文件和网页路径
        • 5.3一般前缀
        • 5.4正则匹配
        • 5.5前缀匹配
        • 5.6精准匹配
        • 5.7通用匹配
    • 二、rewrite地址重写
      • 1、rewrite跳转实现
      • 2、rewrite 执行顺序
      • 3、rewrite语法格式
      • 4、rewrite实例
        • 4.1 基于域名的跳转
        • 4.2基于客户端 IP 访问跳转
        • 4.3基于旧域名跳转到新域名后面加目录
        • 4.4基于参数匹配的跳转
        • 4.5基于目录下所有 php 结尾的文件跳转

一、location

1、常用的Nginx 正则表达式

^ :匹配输入字符串的起始位置
$ :匹配输入字符串的结束位置
* :匹配前面的字符零次或多次。如“ol*”能匹配“o”及“ol”、“oll”
+ :匹配前面的字符一次或多次。如“ol+”能匹配“ol”及“oll”、“olll”,但不能匹配“o”
? :匹配前面的字符零次或一次,例如“do(es)?”能匹配“do”或者“does”,”?”等效于”{0,1}. :匹配除“\n”之外的任何单个字符,若要匹配包括“\n”在内的任意字符,请使用诸如“[.\n]”之类的模式
\ :将后面接着的字符标记为一个特殊字符或一个原义字符或一个向后引用。如“\n”匹配一个换行符,而“\$”则匹配“$”
\d :匹配纯数字[0-9]   
\s :空白符    
\w :任意单词字符包括下划线[A-Za-z0-9_]
{n} :重复 n 次
{n,} :重复 n 次或更多次
{n,m} :重复 n 到 m 次
[] :定义匹配的字符范围
[c] :匹配单个字符 c
[a-z] :匹配 a-z 小写字母的任意一个
[a-zA-Z0-9] :匹配所有大小写字母或数字
() :表达式的开始和结束位置
| :或运算符

从功能看 rewrite 和 location 似乎有点像,都能实现跳转,主要区别在于 rewrite 是在同一域名内更改获取资源的路径,而 location 是对一类路径做控制访问或反向代理,还可以proxy_pass 到其他机器

rewrite 对访问的域名或者域名内的URL路径地址重写
location 对访问的路径做访问控制或者代理转发

2、location的类型

location 大致可以分为三类:
精准匹配:location = / {…}
一般匹配:location / {…}
正则匹配:location ~ / {…}

3、location 的匹配规则

= :进行普通字符精确匹配,也就是完全匹配。
^~ :表示普通字符匹配。使用前缀匹配。如果匹配成功,则不再匹配其它 正则匹配location。
~ :区分大小写的匹配。
~* :不区分大小写的匹配。
!~ :区分大小写的匹配取非。
!~* :不区分大小写的匹配取非。
匹配规则:

首先看 优先级:精确= > 前缀^~ > 正则~,~*,!~,!~* > 一般前缀匹配 /XXXX > 通用匹配 /

在没有精准匹配的情况下,先看所有前缀匹配的长度,取最长匹配的location;
如果最长的前缀匹配带有 ^~ 则不再看其它正则匹配,直接使用^~的location匹配用户的访问路径并跳转页面;如果最长的前缀匹配是不带^~的,则会再看其它正则匹配

前缀匹配看长度,最长的优先匹配
正则匹配看上下顺序,由上往下依次匹配,当有匹配成功时候,停止匹配,按当前匹配规则处理请求

只有在精准、前缀、正则、一般 都没有匹配到的时候才会看通用匹配

4、location 优先级

首先精确匹配 =
其次前缀匹配 ^~
其次是按文件中顺序的正则匹配 ~或~*
然后匹配不带任何修饰符的一般前缀匹配
最后是交给 / 通用匹配

优先级总结:
(location = 完整路径) > (location ^~ 路径) > (location ~,~* 正则顺序) > (location 部分前缀路径) > (location /)

5、location 示例说明

(1)location = / {}
=为精确匹配 / ,主机名后面不能带任何字符串,比如访问 / 和 /data,则 / 匹配,/data 不匹配
再比如 location = /abc,则只匹配/abc ,/abc/或 /abcd不匹配。若 location  /abc,则即匹配/abc 、/abcd/ 同时也匹配 /abc/。

(2)location / {}
因为所有的地址都以 / 开头,所以这条规则将匹配到所有请求 比如访问 / 和 /data, 则 / 匹配, /data 也匹配,
但后面前缀路径会和最长字符串优先匹配(最长匹配)

(3)location /documents/ {}
匹配任何以 /documents/ 开头的地址,匹配符合以后,还要继续往下搜索其它 location
只有其它 location后面的前缀路径没有匹配到时,才会采用这一条

(4)location /documents/abc {}
匹配任何以 /documents/abc 开头的地址,匹配符合以后,还要继续往下搜索其它 location
只有其它 location后面的前缀路径没有匹配到时,才会采用这一条

(5)location ^~ /images/ {}
匹配任何以 /images/ 开头的地址,匹配符合以后,停止往下搜索正则,采用这一条

(6)location ~* \.(gif|jpg|jpeg)$ {}
匹配所有以 gif、jpg或jpeg 结尾的请求
然而,所有请求 /images/ 下的图片会被 location ^~ /images/ 处理,因为 ^~ 的优先级更高,所以到达不了这一条正则

(7)location /images/abc {}
最长字符匹配到 /images/abc,优先级最低,继续往下搜索其它 location,会发现 ^~ 和 ~ 存在

(8)location ~ /images/abc {}
匹配以/images/abc 开头的,优先级次之,只有去掉 location ^~ /images/ 才会采用这一条

(9)location /images/abc/1.html {}
匹配/images/abc/1.html 文件,如果和正则location ~ /images/abc/1.html 相比,正则优先级更高
5.1只修改网页路径
systemctl start nginx

cp nginx.conf{,.bak}
\cp -f nginx.conf.default nginx.conf
#还原配置文件

在这里插入图片描述

#编写一个测试网页
cd /usr/local/nginx/html
vim test.html
<html>
<body>
<h1>this is 111 test web page!</h1>
</body>
</html>

在浏览器访问
http://192.168.210.101/test.html

在这里插入图片描述
在这里插入图片描述

假如在nginx配置文件不做任何改动,要访问/abc/123/test.html这个路径的test.html页面,test.html应该放在哪个目录中?

cd /usr/local/nginx/html
#先在/usr/local/nginx/html目录下建一个abc/123文件
mkdir -p abc/123
#把html目录下的test.html文件移到html/abc/123目录下
mv test.html abc/123/
#修改页面内容
vim test.html
<h1>this is 222 test web page!</h1>

在浏览器访问
http://192.168.210.101/abc/123/test.html

在这里插入图片描述
在这里插入图片描述

5.2修改nginx配置文件和网页路径
修改nginx配置文件,再访问test.html页面,test.html文件应该在哪个目录?

vim /usr/local/nginx/conf/nginx.conf
server{
  location / {
     root html;
     index index.html index.htm;
  }
  location /abc {
     root  /var/www;
  }
}
systemctl restart nginx

在这里插入图片描述

cd /usr/local/nginx/conf
#创建/var/www目录
mkdir -p /var/www
cd /var/www
#在/var/www目录下创建abc/123/目录
mkdir abc/123 -p
#把test.html文件移到abc/123/目录下
mv /usr/local/nginx/html/abc/123/test.html abc/123/
cd abc/123/
#修改test.html文件
vim test.html
<h1>this is 333 test web page!</h1>

在浏览器访问
http://192.168.210.101/abc/123/test.html

在这里插入图片描述
在这里插入图片描述

5.3一般前缀
#一般前缀匹配,取最长匹配的location
#修改nginx配置文件
vim /usr/local/nginx/conf/nginx.conf
server{
  location / {
     root html;
     index index.html index.htm;
  }
  location /abc { 
     root  /var/www;
  }
  location /abc/123 {
     root /var/wyx;
  }
}
systemctl restart nginx

在这里插入图片描述

再次访问http://192.168.210.101/abc/123/test.html这个路径会匹配到哪一个?
#在var目录下创建wyx文件
mkdir /var/wyx
cd /var/
#把/var/www/abc/复制到wyx目录下
cp -r www/abc/ wyx/
cd /wyx/abc/123/
#修改test.html文件
vim test.html
<h1>this is 444 test web page1</h1>

在浏览器访问
http://192.168.210.101/abc/123/test.html

在这里插入图片描述
在这里插入图片描述

5.4正则匹配
#正则匹配
vim /usr/local/nginx/conf/nginx.conf
server{
  
  location ~ ^/abc { #如果加上~ ^,访问页面会回到333页面,因为正则的优先级高
     root  /var/www;
  }
 
}
systemctl restart nginx
在浏览器访问
http://192.168.210.101/abc/123/test.html

在这里插入图片描述
在这里插入图片描述

#正则匹配按顺序匹配
vim /usr/local/nginx/conf/nginx.conf
server{
  location / {
     root html;
     index index.html index.htm;
  }
  #匹配以.html结尾的路径
  location ~ \.html$ { 
     root  /var/www;
  }
  location ~ /abc/123 {
     root /var/wyx;
  }
}
systemctl restart nginx
在浏览器访问http://192.168.210.101/abc/123/test.html

在这里插入图片描述
在这里插入图片描述

server{
  location / {
     root html;
     index index.html index.htm;
  }
  location ~ /abc/123 {
     root /var/wyx;
  }
   location ~ \.html$ { 
     root  /var/www;
  }
}
systemctl restart nginx
在浏览器访问http://192.168.210.101/abc/123/test.html

在这里插入图片描述
在这里插入图片描述

5.5前缀匹配
#前缀匹配
vim /usr/local/nginx/conf/nginx.conf
server{
  location ~ ^/abc { 
     root  /var/www;
  }
  #加上^~,访问页面又会回到444页面,因为前缀^~的优先级大于正则~
  location ^~ /abc/123 {  
     root /var/wyx;
  }
}
systemctl restart nginx
在浏览器访问http://192.168.210.101/abc/123/test.html

在这里插入图片描述
在这里插入图片描述

#在没有精准和正则匹配的情况下,^~和/XXXX都是前缀匹配,谁的长度长就看谁的页面
vim /usr/local/nginx/conf/nginx.conf
server{
  location / {
     root html;
     index index.html index.htm;
  }
  location ^~ /abc { 
     root  /var/www;
  }
  #/abc/123的长度长,所以还是匹配444页面
  location /abc/123 {
     root /var/wyx;
  }
}
在浏览器访问http://192.168.210.101/abc/123/test.html

在这里插入图片描述
在这里插入图片描述

5.6精准匹配
#精准匹配
vim /usr/local/nginx/conf/nginx.conf
server{
  location / {
     root html;
     index index.html index.htm;
  }
  location ~ ^/abc { 
     root  /var/www;
  }
  location ^~ /abc/123 {
     root /var/wyx;
  }
  #精准匹配优先级最高
  location = /abc/123/test.html { 
     root html;
  }
}
systemctl restart nginx

#编写精准匹配的测试页面
cd /usr/local/nginx/html/abc/123
echo 'this is test web1' > test.html

在浏览器访问http://192.168.210.101/abc/123/test.html

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.7通用匹配
#通用匹配
#编写通用匹配测试页面
cd /usr/local/nginx/html
mkdir data
echo 'this is data test web' > data/test.html

vim /usr/local/nginx/conf/nginx.conf
server{
  location / {
     root html;
     index index.html index.htm;
  }
  location /abc { 
     root  /var/www;
  }
  location /abc/123 {
     root /var/wyx;
  }
}
systemctl restart nginx
在浏览器中访问http://192.168.210.101/data/test.html

在这里插入图片描述
在这里插入图片描述

二、rewrite地址重写

rewrite功能就是,使用nginx提供的全局变量或自己设置的变量,结合正则表达式和标记位实现URL重写以及重定向。
比如:更换域名后需要保持旧的域名能跳转到新的域名上、某网页发生改变需要跳转到新的页面、网站防盗链等等需求。

rewrite只能放在server{},location{},if{}中,并且默认只能对域名后边的除去传递的参数外的字符串起作用,
例如 http://www.kgc.com/abc/bbs/index.php?a=1&b=2 只对/abc/bbs/index.php重写。

1、rewrite跳转实现

①Nginx:通过ngx_http_rewrite_module 模块支持URL重写、支持if条件判断,但不支持else
②跳转:从一个 location跳转到另一个location,循环最多可以执行10次,超过后nginx将返回500错误
③PCRE支持:perl兼容正则表达式的语法规则匹配
④重写模块 set 指令:创建新的变量并设其值

2、rewrite 执行顺序

(1) 执行 server 块里面的 rewrite 指令。
(2) 执行 location 匹配。
(3) 执行选定的 location 中的 rewrite 指令。

3、rewrite语法格式

语法格式:rewrite <regex> <replacement> [flag];
regex :表示正则匹配规则。
replacement :表示跳转后的内容。
flag :表示 rewrite 支持的 flag 标记。

###flag标记说明###
last :本条规则匹配完成后,不终止重写后的url匹配,一般用在 server 和 if 中。
break :本条规则匹配完成即终止,终止重写后的url匹配,一般使用在 location 中。
redirect :返回302临时重定向,浏览器地址会显示跳转后的URL地址。
permanent :返回301永久重定向,浏览器地址栏会显示跳转后的URL地址。

4、rewrite实例

4.1 基于域名的跳转

现在公司旧域名www.kgc.com有业务需求变更,需要使用新域名www.benet.com代替,但是旧域名不能废除,需要跳转到新域名上,而且后面的参数保持不变。

vim /usr/local/nginx/conf/nginx.conf
server {

	location / {
	#添加域名重定向
        if ($host = "www.accp.com"){						#$host为rewrite全局变量,代表请求主机头字段或主机名
			rewrite ^/(.*)$ http://www.benet.com/$1 permanent;	#$1为正则匹配的内容,即“域名/”之后的字符串
        }
        root   html;
        index  index.html index.htm;
    }
}

#在本机添加域名解析
192.168.210.101 www.accp.com
192.168.210.101 www.benet.com

在这里插入图片描述

systemctl restart nginx

浏览器输入模拟访问 http://www.accp.com/abc/123/test.html
.html(虽然这个请求内容是不存在的)
会跳转到www.benet.com/abc/123/test.html,查看元素可以看到返回301,实现了永久重定向跳转,而且域名后的参数也正常跳转。

在这里插入图片描述

4.2基于客户端 IP 访问跳转

今天公司业务新版本上线,要求所有 IP 访问任何内容都显示一个固定维护页面,只有公司 IP :192.168.210.101访问正常。

vim /usr/local/nginx/conf/nginx.conf
server {

	#设置是否合法的IP标记
    set $rewrite true;							#设置变量$rewrite,变量值为boole值true
    #判断是否为合法IP
	if ($remote_addr = "192.168.210.101"){		
	#当客户端IP为192.168.210.101时,将变量值设为false,不进行重写
        set $rewrite false;
    }
    #所有主机可以访问
    #if ($remote_addr = "192.168.210.1"){		
    #    set $rewrite false;
    #}
	#除了合法IP,其它都是非法IP,进行重写跳转维护页面
    if ($rewrite = true){						
    #当变量值为true时,进行重写
        rewrite ^/ /weihu.html;				
        #将域名后边的路径重写成/weihu.html后转发,例如www.kgc.com/weihu.html
    }
    location = /weihu.html {
        root /var/www/html;						
        #网页返回/var/www/html/weihu.html的内容
    }

在这里插入图片描述

#创建/var/www/html/
mkdir -p /var/www/html/
#编写测试页面
echo '<h1>We are maintaining now!</h1>' > /var/www/html/weihu.html

#在本机做域名解析
echo '192.168.210.101 www.accp.com www.benet.com' > /etc/hosts

nginx -t
systemctl restart nginx
再开一台主机
vim /etc/hosts
192.168.210.101 www.accp.com

在内置浏览器测试:http://www.accp.com

在这里插入图片描述

在这里插入图片描述

本机访问:curl http://www.accp.com
curl http://www.accp.com/abc/123/test.html
只有 IP 为 192.168.210.101 能正常访问,其它地址都是维护页面

在这里插入图片描述

server {
	
    set $rewrite true;							
	if ($remote_addr = "192.168.210.101"){		
        set $rewrite false;
    }
    #所有主机可以访问
    if ($remote_addr = "192.168.210.1"){		
        set $rewrite false;
    }
    if ($rewrite = true){						   
        rewrite ^/ /weihu.html;			
    }

在这里插入图片描述

在这里插入图片描述

4.3基于旧域名跳转到新域名后面加目录

现在访问的是 http://nba.accp.com/jordan/test.html,现在需要将这个域名下面的访问都跳转到http://www.accp.com/nba/jordan/test.html

vim /usr/local/nginx/conf/nginx.conf
server {
	#添加
	location /jordan {
        rewrite ^/(.*)$ http://www.accp.com/nba/$1 permanent;		#这里的$1为位置变量,代表/jordan
    }
	
	location / {
        root   html;
        index  index.html index.htm;
    }
}
nginx -t
systemctl restart nginx

#在本地添加hosts域名解析
192.168.210.101 nba.accp.com

在浏览器访问 http://nba.accp.com/jordan/test.html会跳转到http://www.accp.com/jordan/test/html

在这里插入图片描述

在这里插入图片描述

4.4基于参数匹配的跳转

现在访问http://www.accp.com/100-(100|200)-100.html 跳转到http://www.accp.com页面。

vim /usr/local/nginx/conf/nginx.conf
server {
	
	location ~ ^/100-(100|200)-100.html$ {
        rewrite ^/ http://www.accp.com permanent;
    }
   
	location / {
        root   html;
        index  index.html index.html;
    }
   
}
nginx -t
systemctl restart nginx
使用浏览器访问 http://www.accp.com/100-200-100.html 或 http://www.accp.com/100-100-100.html 跳转到http://www.accp.com页面。

在这里插入图片描述

#不把地址栏的地址进行重写
server {
	
	location ~ ^/100-(100|200)-100.html$ {
        #rewrite ^/ http://www.accp.com permanent;
        rewrite ^/ /;
}
nginx -t
systemctl restart nginx
使用浏览器访问 http://www.accp.com/100-200-100.html

在这里插入图片描述

在这里插入图片描述

4.5基于目录下所有 php 结尾的文件跳转

要求访问 http://www.accp.com/discuz/XXX.php 跳转到http://www.accp.com。

vim /usr/local/nginx/conf/nginx.conf
server {
	
	location ~ ^/discuz/.*\.php$ {
        rewrite ^/ http://www.accp.com permanent;
    }

	location / {
        root   html;
        index  index.html index.htm;
    }
}

nginx -t
systemctl restart nginx
浏览器访问 http://www.accp.com/discuz/index.php 跳转到http://www.accp.com页面。

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C# WPF上位机开发(usb设备访问)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 目前很多嵌入式设备都支持usb访问&#xff0c;特别是很多mcu都支持高速usb访问。和232、485下个比较&#xff0c;usb的访问速度和它们基本不在一个…

miRMaker

Introduction 除了miRNA表达数据&#xff0c;各种miRNA相关的知识也强有力地支持了对miRNA功能相互作用的理解。 那些具有许多共同调控靶基因或疾病的miRNAs可能具有相似的功能 一些方法通过考虑实验验证的miRNA-靶标关系来评估miRNA相互作用&#xff0c;评估miRNA功能相互作…

自清洗过滤器工作原理尺寸选型参数,内部结构,压差开关如何调节

​ 1&#xff1a;全自动自清洗过滤器设备介绍 全自动反冲洗过滤器是水净化过程中不可缺少的处理手段&#xff0c;用于拦截水中的各种杂质&#xff0c;以净化水质或保护系统中其他设备的正常工作。普通网式过滤器因其结构简单、过滤效果好、阻力小而广泛应用于水源过滤、工业循…

【Android Studio】各个版本下载地址

下载地址&#xff1a; https://developer.android.com/studio/archive?hlzh-cn

如何用 Cargo 管理 Rust 工程系列 丁

以下内容为本人的学习笔记&#xff0c;如需要转载&#xff0c;请声明原文链接微信公众号「ENG八戒」https://mp.weixin.qq.com/s/PP9b5cSNd-7IqgNovcrB0A 优化输出 前面已经对 cargo package 工程编译输出了好多遍&#xff0c;发现编译结果打印的信息都包含了这个 unoptimize…

c语言:[输出函数]与[输入函数]|要点简述

一、【输出函数】 printf() 与 puts()的不同点 1、printf()函数 printf()支持单个字符%c的输出&#xff0c;以及字符串%s的输出。 (1)如果是以%c的形式输出&#xff0c;是一个字符一个字符的输出。因此&#xff0c;要用一个循环语句&#xff0c;把字符逐个输出。 (2)而用%…

Unity与Android交互通信系列(2)

在上一篇文章中&#xff0c;我们介绍了Unity和Android交互通信的原理及在Unity中直接调用Java代码的方式&#xff0c;但没有给出代码示例&#xff0c;下面通过实际例子演示上篇文章中AndroidJavaClass、AndroidJavaObject两个类的基本用法&#xff0c;由于交互通信涉及到两端&a…

查看知乎数学公式Tex源码的方法

首先使用F12打开开发者工具&#xff0c;再使用元素选择器选中要查看的公式。 在源码对应位置附近可以看到一个类型为 math/tex 的 script&#xff0c;如果没找到可以展开目录查找。

网络时间服务器

本章主要介绍网络时间服务器。 使用chrony配置时间服务器 配置chrony客户端向服务器同步时间 1 时间同步的必要性 一些服务对时间要求非常严格&#xff0c;例如&#xff0c;图所示的由三台服务器搭建的ceph集群。 这三台服务器的时间必须保持一致&#xff0c;如果不一致&#…

若依打包将vue放到.jar里面部署

1.vue静态文件&#xff0c;以及单页面 ruoyi-admin\src\main\resources\static \ruoyi-admin\src\main\resources\templates 2.后台开放白名单 "/cms", "/cms#/login" 3. mvc访问vue页面入口&#xff0c;接口 package com.ruoyi.web.controller.syst…

08_CSS定位与综合案例开发

day08_CSS定位与&综合案例开发 Objective&#xff08;本课目标&#xff09; 理解什么是定位能说出为什么要用定位 1. 为什么使用定位 标准流在最底层 (海底) ------- 浮动的盒子在中间层 (海面) ------- 定位的盒子 在 最上层 &#xff08;天空&#xff09; 小黄色块在…

软件测试面试八股文,最常见的7个高频面试题(附答案,建议收藏)

问题1&#xff1a;请自我介绍下&#xff1f; 核心要素&#xff1a;个人技能优势工作背景经验亮点 参考回答&#xff1a; 第一种&#xff1a;基本信息离职理由 面试官您好&#xff0c;我叫张三&#xff0c;来自番茄市&#xff0c;在软件测试⾏业有 3 年的⼯作经验。做过 Web…

算法——动态规划(DP,Dynamic Programming)

一、基础概念 DP的思想&#xff1a; 把问题分成子问题&#xff0c;前面子问题的解决结果被后面的子问题使用DP与分治法的区别&#xff1a; 分治法把问题分成独立的子问题&#xff0c;各个子问题能独立解决 自顶向下DP前面子问题的解决结果被后面的子问题使用&#xff0c;子问题…

3090K MOSFET N通道沟槽功率 PWM应用

3090K 采用沟槽技术&#xff0c;提供活x氧(导通)&#xff0c;低栅J电荷和栅J电压低至4.5V的工作。3090K 设备适用于各种应用。 3090K 特性&#xff1a; ● VDS 30V,ID 86A RDS(ON) < 5 mΩ VGS 10V RDS(ON) < 9.5mΩ VGS 4.5V ● 高功率和电流处理能力 ● 获得无…

【性能测试】基础知识篇-压力模型

常见压力模式 并发模式&#xff08;即虚拟用户模式&#xff09;和RPS模式&#xff08;即Requests Per Second&#xff0c;每秒请求数&#xff0c;吞吐量模式&#xff09;。 本文介绍这两种压力模式的区别&#xff0c;以便根据自身业务场景选择更合适的压力模式。 并发模式 …

C++面向对象(OOP)编程-模板

本文主要讲解C的模板&#xff0c;其中包括模板的分类&#xff0c;函数模板和类模板&#xff0c;以及类模板与友元函数关系引起的几种关系。强调提供代码来搞懂C模板这一泛型编程手段。 目录 1 C模板 2 模板的本质 3 模板分类 4 函数模板 4.1 函数模板定义格式 4.2 函数模…

下午好~ 我的论文【遥感】(第一期)

写在前面&#xff1a;下午浑浑噩噩&#xff0c;泡杯茶&#xff0c;读篇论文吧 首先说明&#xff0c;时间有限没有那么精力一一回复了&#xff0c;对不起各位了TAT 文章目录 遥感Bi-Dilation-formerCNN-GNN-FusionMulti-hierarchical cross transformerCoupled CNNs 遥感 Bi-D…

Linux---Ubuntu软件安装

1. 软件安装的介绍 Ubuntu软件安装有两种方式: 离线安装(deb文件格式安装&#xff09;在线安装(apt-get方式安装) 2. deb文件格式安装 是 Ubuntu 的安装包格式&#xff0c;可以使用 dpkg 命令进行软件的安装和卸载。 命令说明dpkg安装和卸载deb安装包 dpkg命令选项: 选项…

TestSSLServer4.exe工具使用方法简单介绍(查SSL的加密版本SSL3或是TLS1.2)

一、工具使用方法介绍 工具使用方法参照&#xff1a;http://www.bolet.org/TestSSLServer/ 全篇英文看不懂&#xff0c;翻译了下&#xff0c;能用到的简单介绍如下&#xff1a; 将下载的TestSSLServer4.exe工具放到桌面上&#xff0c;CMD命令行进入到桌面目录&#xff0c;执…

Kafka--从Zookeeper数据理解Kafka集群工作机制

从Zookeeper数据理解Kafka集群工作机制 这一部分主要是理解Kafka的服务端重要原理。但是Kafka为了保证高吞吐&#xff0c;高性能&#xff0c;高可扩展的三高架构&#xff0c;很多具体设计都是相当复杂的。如果直接跳进去学习研究&#xff0c;很快就会晕头转向。所以&#xff0c…