六、Nginx-正向代理和反向代理

news2024/11/26 2:38:37

目录

一、正向代理

1、参数详解

 2、常用变量详解

3、配置示例

二、反向代理

三、 Nginx的安全控制

1、如何使用SSL对流量进行加密

2、nginx添加SSL的支持

3、 Nginx的SSL相关指令

(1)ssl

(2)ssl_certificate

(3)ssl_certificate_key

(4)ssl_session_cache

(5)ssl_session_timeout

(6)ssl_ciphers

(7)ssl_prefer_server_ciphers

(8)生成证书

四、 反向代理系统优化

1、proxy_buffering

2、proxy_buffers

3、proxy_buffer_size

4、proxy_busy_buffers_size

5、proxy_temp_path

6、proxy_temp_file_write_size


一、正向代理

        正向代理,意思是一个位于客户端和原始服务器之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端才能使用正向代理。

        假设 我们想要访问国外的网站,此时你会发现国外的网站我们通过浏览器是无法访问的,这时大家可能都会用一个操作翻墙进行访问,翻墙的方式主要是找到一个可以访问国外网站的代理服务器,我们将请求发送给代理服务器,代理服务器去访问国外的网站,然后将访问到的数据传递给我们!这就称为正向代理。

        正向代理最大的特点是客户端非常明确要访问的服务器地址;服务器只清楚请求来自哪个代理服务器,而不清楚来自哪个具体的客户端;正向代理模式屏蔽或者隐藏了真实客户端信息。

总结:正向代理就是代理客户端,客户端与代理服务器处在同一LAN(局域网)中。

1、参数详解

listen指令:
    #用于指定Nginx监听的端口和地址。
    #示例:listen 8080; 表示Nginx监听在8080端口上。
resolver指令:
    #用于指定DNS解析器的地址。
    #示例:resolver 8.8.8.8 valid=300s; 表示使用Google的公共DNS服务器进行域名解析,并设置解析结果的有效期为300秒。
proxy_pass指令:
    #用于指定请求应该被转发到的目标地址。
    #示例:proxy_pass http://backend_server; 表示将请求转发到名为backend_server的上游服务器。
proxy_set_header指令:
    #用于修改转发给上游服务器的请求头。
    #示例:proxy_set_header Host $host; 表示将原始请求的Host头转发给上游服务器。
proxy_cache指令:
    #用于启用缓存功能,缓存上游服务器的响应。
    #示例:proxy_cache path/to/cache; 表示启用缓存,并将缓存文件存储在path/to/cache目录下。
proxy_cache_valid指令:
    #用于为不同的响应状态码设置不同的缓存有效期。
    #示例:proxy_cache_valid 200 304 12h; 表示对于状态码为200和304的响应,缓存有效期为12小时。
proxy_connect_timeout指令:
    #用于设置与上游服务器建立连接的超时时间。
    #示例:proxy_connect_timeout 60s; 表示建立连接的超时时间为60秒。
proxy_read_timeout指令:
    #用于设置从上游服务器读取响应的超时时间。
    #示例:proxy_read_timeout 60s; 表示读取响应的超时时间为60秒。
proxy_send_timeout指令:
    #用于设置向上游服务器发送请求的超时时间。
    #示例:proxy_send_timeout 60s; 表示发送请求的超时时间为60秒。
client_max_body_size指令:
    #用于设置客户端请求体的最大允许大小。
    #示例:client_max_body_size 10m; 表示客户端请求体的最大允许大小为10MB。
    
------    
Proxy Buffer相关指令
1. proxy_buffering
#该指令用来开启或者关闭代理服务器的缓冲区
#语法:proxy_buffering on|off;
#默认值:proxy_buffering on;
#位置:http、server、location
2、proxy_buffers
#该指令用来指定单个连接从代理服务器读取响应的缓存区的个数和大小。
#语法:proxy_buffers number size;
#    number:缓冲区的个数
#    size:每个缓冲区的大小,缓冲区的总大小就是number*size
#默认值:proxy_buffers 8 4k | 8K;(与系统平台有关)
#位置:http、server、location
3、proxy_buffer_size
#该指令用来设置从被代理服务器获取的第一部分响应数据的大小。保持与proxy_buffers中的size一致即可,当然也可以更小。
4、proxy_busy_buffers_size
#高负荷下缓冲大小(proxy_buffers*2)
5、proxy_temp_path
#当缓冲区存满后,仍未被Nginx服务器完全接受,响应数据就会被临时存放在磁盘文件上,该指令设置文件路径
#默认值:proxy_temp_path proxy_temp;
6、 proxy_temp_file_write_size
#设定缓存文件夹大小,大于这个值,将从upstream服务器传

示例:
proxy_buffering on;
proxy_buffer_size 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;

 2、常用变量详解

$arg_NAME:
#这个变量用于获取 GET 请求中指定名称(NAME)的参数值。
#例如,如果请求是 /example?name=John,那么 $arg_name 的值就是 "John"。
$uri:
#此变量包含请求中的当前 URI(不带请求参数),参数位于 $args 中。它可能不同于浏览器传递的 $request_uri 的值,因为它可以通过内部重定向或使用 index 指令进行修改。$uri 不包含主机名。
$request_uri:
#这个变量包含完整的原始请求 URI(包括参数),即客户端在 HTTP 请求行中发送的 URI。
$host:
#包含了请求行中的主机名,以及可能的端口号。
$http_HEADER:
#这里的 HEADER 是指 HTTP 请求头中的字段名。使用这个变量可以获取到请求头中对应字段的值。例如,$http_user_agent 会获取到用户代理字符串。
$remote_addr:
#客户端的 IP 地址。
$document_root:
#当前请求在服务器上的根目录。
$server_name:
#请求到达的服务器名。
$server_port:
#请求到达的服务器的端口号。
$request_filename:
#当前请求的文件路径名,由 $document_root 和 $uri 组成。

3、配置示例

#正向代理转发http请求
server {               
    listen 80;    
    resolver 114.114.114.114;        
    server_name  localhost;  
    #正向代理转发http请求    
    location / {        
        proxy_pass                 http:$host$request_uri; #设定代理服务器的协议和地址       
        proxy_set_header           HOST $host;        
        proxy_buffers              256 4k;        
        proxy_max_temp_file_size   0k;        
        proxy_connect_timeout      30;        
        proxy_send_timeout         60;        
        proxy_read_timeout         60;        
        proxy_next_upstream error  timeout invalid_header http_502;
    }
}

#正向代理转发https请求
server {     
    resolver 114.114.114.114;    
    #监听443端口,https默认端口443    
    listen 443;   
    #正向代理转发https请求   
    proxy_connect;   
    proxy_connect_allow            443 563;   
    proxy_connect_connect_timeout  10s;   
    proxy_connect_read_timeout     10s;   
    proxy_connect_send_timeout     10s;   
    location / {        
        proxy_pass http:$host;        
        proxy_set_header Host $host;   
    }
}

检查配置是否正确
sbin/nginx -t
启动,验证

二、反向代理

        反向代理指的是位于客户端与服务端之间的代理服务器。与正向代理不同的是,客户端直接访问代理服务器,然后代理服务器向服务端转发请求并将服务端返回的资源返回给客户端。

        客户端对代理是无感知的,因为客户端不需要配置任何配置参数就可以访问,客户端只需要将请求发送到反向代理服务器,由反向代理服务器去请求目标服务器获取数据后,再返回给客户端,此时反向代理服务器和目录服务器对外就是一个服务器,暴露的是代理代理服务器地址,隐藏了真实服务器IP地址。

        总结:反向代理就是代理服务端,服务端与代理服务器处在同一LAN(局域网)中。

        反向代理的主要作用是提供负载均衡和高可用性。

        Nginx反向代理模块的指令是由 ngx_http_proxy_module模块进行解析,该模块在安装Nginx的时候已经自己加装到Nginx中了,接下来我们把反向代理中的常用指令一一介绍下: 

proxy_pass http://127.0.0.1:80;
#该指令用来设置被代理服务器地址,可以是主机名称、IP地址加端口号形式。
#位置:location

proxy_set_header 
#该指令可以更改Nginx服务器接收到的客户端请求的请求头信息,然后将新的请求头发送给被代理的服务器即目标服务器。
#默认值:
    proxy_set_header Host $proxy_host;
    proxy_set_header Connection close;
    
proxy_redirect off;
#在使用Nginx做反向代理功能时,有时会出现重定向的url不是我们想要的url,这时候就可以使用proxy_redirect进行url重定向设置了。
#proxy_redirect功能比较强大,其作用是对发送给客户端的URL进行修改。
#默认:proxy_redirect default;
#配置块(使用的字段):http、server、location
#我们是关闭此项的。
proxy_set_header X-Real-IP $remote_addr;
#把源IP 【$remote_addr,建立HTTP连接header里面的信息】赋值给X-Real-IP;这样在代码中 $X-Real-IP来获取 源IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#后端的Web服务器可以通过X-Forwarded-For获取用户真实IP(作为代理服务器时,设置的IP列表,会把经过的机器ip,代理机器ip都记录下来,用 【,】隔开;代码中用 echo $x-forwarded-for |awk -F, '{print $1}' 来作为源IP)

#以下是一些反向代理的配置,可选。

# 这将帮助减少缓冲区溢出攻击的可能性
    #允许客户端请求的最大单文件字节数。外面的快设置之后这里不需要在设置了。
    client_max_body_size 10m;
    #缓冲区代理缓冲用户端请求的最大字节数,
    client_body_buffer_size 128k;
# 为客户端设置超时时间    
#nginx跟后端服务器连接超时时间(代理连接超时);#nginx服务器与被代理的服务器建立连接的超时时间,默认60秒
proxy_connect_timeout 60;
#后端服务器数据回传时间(代理发送超时);#nginx服务器想被代理服务器组发出read请求后,等待响应的超时间,默认为60秒。
proxy_send_timeout 30;
#连接成功后,后端服务器响应时间(代理接收超时);#nginx服务器想被代理服务器组发出write请求后,等待响应的超时间,默认为60秒。
proxy_read_timeout 90;
#支持客户端的请求方法。post/get;
proxy_method get;
#客户端断网时,nginx服务器是否中断对被代理服务器的请求。默认为off。
proxy_ignore_client_abort on;
#存放http报文头的哈希表容量上限,默认为512个字符。
proxy_headers_hash_max_size 1024;
#nginx服务器申请存放http报文头的哈希表容量大小。(默认64)
proxy_headers_hash_bucket_size 128;
#反向代理upstream中设置的服务器组,出现故障时,被代理服务器返回的状态值。error|timeout|invalid_header|http_500|http_502|http_503|http_504|http_404|off
proxy_next_upstream timeout;

示例: 

#反向代理转发请求
server {
   listen       80;    #监听端口
   server_name  locahost;                                              
   error_page 404  /404.html;
   error_page 403  /403.html;
   location /AsynSlProj/webService{
        proxy_headers_hash_max_size 512;    #设置头部哈希表的最大值
        proxy_headers_hash_bucket_size 128;    #设置头部哈希表大小
        proxy_redirect off;    #关闭代理重定向
        proxy_set_header Host $host:$server_port;    #将代理服务WSDL地址转换为代理服务器本机地址
        proxy_set_headerX-Real-IP $remote_addr;
        proxy_set_headerX-Forwarded-For $proxy_add_x_forwarded_for;
        client_max_body_size 50m;    #允许客户端请求的最大单文件字节数
        client_body_buffer_size 256k;    #缓冲区代理缓冲用户端请求的最大字节数
        proxy_connect_timeout 10;    #nginx跟后端服务器连接超时时间
        proxy_read_timeout 600;    #连接成功后,后端服务器响应时间
        proxy_send_timeout 600;    #后端服务器数据回传时间
        proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
        proxy_pass http://127.0.0.1:80;
        index  index.html index.htm index.jsp;
    }
       error_page   500 502 503 504  /50x.html;
       location = /50x.html {
           root   html;
       }
}

三、 Nginx的安全控制

        关于web服务器的安全是比较大的一个话题,里面所涉及的内容很多,Nginx反向代理是如何来提升web服务器的安全呢?

        – 安全隔离。

        什么是安全隔离

        通过代理分开了客户端到应用程序服务器端的连接,实现了安全措施。在反向代理之前设置防火墙,仅留一个入口供代理服务器访问。

1、如何使用SSL对流量进行加密

        翻译成大家能熟悉的说法就是将我们常用的http请求转变成https请求,那么这两个之间的区别简单的来说两个都是HTTP协议,只不过https是身披SSL外壳的http。

        HTTPS是一种通过计算机网络进行安全通信的传输协议。它经由HTTP进行通信,利用SSL/TLS建立全通信,加密数据包,确保数据的安全性。

        SSL(Secure Sockets Layer)安全套接层。

        TLS(Transport Layer Security)传输层安全。

        上述这两个是为网络通信提供安全及数据完整性的一种安全协议,TLS和SSL在传输层和应用层对网络连接进行加密。

        总结来说为什么要使用https:

        http协议是明文传输数据,存在安全问题,而https是加密传输,相当于http+ssl,并且可以防止流量劫持。

        Nginx要想使用SSL,需要满足一个条件即需要添加一个模块--with-http_ssl_module,而该模块在编译的过程中又需要OpenSSL的支持

2、nginx添加SSL的支持

        nginx添加支持 的模块在此不做详解

3、 Nginx的SSL相关指令

(1)ssl

该指令用来在指定的服务器开启HTTPS,可以使用 listen 443 ssl,后面这种方式更通用些。

语法

ssl on | off;

默认值

ssl off;

位置

http、server

server{
  listen 443 ssl;
  server_name locahost;
  #或者
  ssl on;
}

(2)ssl_certificate

ssl_certificate:为当前这个虚拟主机指定一个带有PEM格式证书的证书。

语法

ssl_certificate file;

默认值

位置

http、server

(3)ssl_certificate_key

该指令用来指定PEM secret key文件的路径

语法

ssl_ceritificate_key file;

默认值

位置

http、server

server {
  ssl on;
  ssl_certificate  /usr/local/nginx/cert/server.crt;
  ssl_certificate_key /usr/local/nginx/cert/server.key;
}

(4)ssl_session_cache

该指令用来配置用于SSL会话的缓存

语法

ssl_sesion_cache off|none|[builtin[:size]] [shared:name:size]

默认值

ssl_session_cache none;

位置

http、server

off:禁用会话缓存,客户端不得重复使用会话

none:禁止使用会话缓存,客户端可以重复使用,但是并没有在缓存中存储会话参数

builtin:内置OpenSSL缓存,仅在一个工作进程中使用。

shared:所有工作进程之间共享缓存,缓存的相关信息用name和size来指定

(5)ssl_session_timeout

开启SSL会话功能后,设置客户端能够反复使用储存在缓存中的会话参数时间。

语法

ssl_session_timeout time;

默认值

ssl_session_timeout 5m;

位置

http、server

(6)ssl_ciphers

指出允许的密码,密码指定为OpenSSL支持的格式.可以使用openssl ciphers查看openssl支持的格式。

语法

ssl_ciphers ciphers;

默认值

ssl_ciphers HIGH:!aNULL:!MD5;

位置

http、server

(7)ssl_prefer_server_ciphers

该指令指定是否服务器密码优先客户端密码

语法

ssl_perfer_server_ciphers on|off;

默认值

ssl_perfer_server_ciphers off;

位置

http、server

(8)生成证书

在此使用openssl生成证书。步骤是创建一个私钥和一个自签名证书,然后将它们配置到 Nginx 中

创建证书存放目录
mkdir  /usr/local/nginx/cert
cd /use/local/nginx/cert
1、生成服务器私钥,这个命令生成了一个 1024 位的 RSA 私钥,并且用 DES3 对其进行了加密保护。在执行此命令时,会提示您输入一个密码短语来保护私钥。
openssl genrsa -des3 -out server.key 1024
2. 根据服务器私钥文件生成证书请求文件,这个文件中会包含申请人的一些信息,所以执行下面这行命令过程中需要用户在命令行输入一些用户信息,随便填写,一路回车即可。
openssl req -new -key server.key -out server.csr
3、为了不需要在每次重启nginx的时候都输入密码
cp server.key server.key.org
openssl rsa -in server.key.org -out server.key
4、用第一步的私钥和第二步的请求文件生成证书
openssl x509 -req -in server.csr -signkey server.key -days 3650 -out server.crt 

四、 反向代理系统优化

反向代理值Buffer和Cache

Buffer翻译过来是"缓冲",Cache翻译过来是"缓存"。

总结下:

相同点:
两种方式都是用来提供IO吞吐效率,都是用来提升Nginx代理的性能。
不同点:
缓冲主要用来解决不同设备之间数据传递速度不一致导致的性能低的问题,缓冲中的数据一旦此次操作完成后,就可以删除。
缓存主要是备份,将被代理服务器的数据缓存一份到代理服务器,这样的话,客户端再次获取相同数据的时候,就只需要从代理服务器上获取,效率较高,缓存中的数据可以重复使用,只有满足特定条件才会删除.

Proxy Buffer相关指令

1、proxy_buffering

该指令用来开启或者关闭代理服务器的缓冲区

语法

proxy_buffering on|off;

默认值

proxy_buffering on;

位置

http、server、location

2、proxy_buffers

该指令用来指定单个连接从代理服务器读取响应的缓存区的个数和大小。

语法

proxy_buffers number size;

默认值

proxy_buffers 8 4k | 8K;(与系统平台有关)

位置

http、server、location

number:缓冲区的个数

size:每个缓冲区的大小,缓冲区的总大小就是number*size

3、proxy_buffer_size

该指令用来设置从被代理服务器获取的第一部分响应数据的大小。保持与proxy_buffers中的size一致即可,当然也可以更小。

语法

proxy_buffer_size size;

默认值

proxy_buffer_size 4k | 8k;(与系统平台有关)

位置

http、server、location

4、proxy_busy_buffers_size

该指令用来限制同时处于BUSY状态的缓冲总大小。

语法

proxy_busy_buffers_size size;

默认值

proxy_busy_buffers_size 8k|16K;

位置

http、server、location

5、proxy_temp_path

当缓冲区存满后,仍未被Nginx服务器完全接受,响应数据就会被临时存放在磁盘文件上,该指令设置文件路径

语法

proxy_temp_path path;

默认值

proxy_temp_path proxy_temp;

位置

http、server、location

6、proxy_temp_file_write_size

该指令用来设置磁盘上缓冲文件的大小。

语法

proxy_temp_file_write_size size;

默认值

proxy_temp_file_write_size 8K|16K;

位置

http、server、location

通用网站的配置:

proxy_buffering on;
proxy_buffer_size 4k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;

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

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

相关文章

白酒:茅台镇白酒的消费者教育计划与推广活动

云仓酒庄豪迈白酒,作为茅台镇的品牌,一直以来都非常重视消费者教育和推广活动。这些计划和活动的目的在于提高消费者对豪迈白酒的认知度和接受度,同时培养消费者的品鉴能力和酒文化素养。 首先,云仓酒庄豪迈白酒通过开展品鉴活动来…

羊城杯 2020 a_piece_of_java

考点:JDBC反序列化打CC链动态代理类触发readobject 一眼看过去 好像只有一个mysql-connector-java 可以利用jdbc 可能的攻击路径就有1) Mysql服务器任意文件读取 2) JDBC反序列化打依赖链 出现了一个不常见的依赖库 serialkiller 做了反序列化的过滤器 可以尝试查看其源码 htt…

保护密码安全,探讨密码加盐及其在Go语言中的实现

介绍 在当今数字化时代,个人隐私和数据安全成为了人们关注的焦点之一。随着网络犯罪的不断增加,用户的密码安全性变得尤为重要。密码加盐作为一种常见的安全措施,被广泛应用于密码存储和认证系统中。本文将深入探讨密码加盐的概念、重要性以…

网站改成HTTPS方法

网站改成HTTPS只要网站没有特殊性的要求,绝大部分网站很轻松的就可以完成,尤其是CMS类似的网站系统或者自助搭建的网站(比如:这种网站可以在网站后台一次性安装并且生效)。 基本要求 将网站改成HTTPS有2个前提&#…

celery使用 Zookeeper 或 kafka 作为broker,使用 mysql 作为 backend

背景介绍: 先贴上celery官方文档:Celery - Distributed Task Queue — Celery 5.4.0 documentation xxx项目中单点环境运行celery + redis,使用流畅,不做过多介绍。 切换高可用环境时,客户redis使用的是cluster集群,官方文档中并没有对redis cluster的支持,查看githu…

proDAD V4软件安装包下载及安装教程

ProDAD heroglyph 4.0采用了全新的UI界面,新增了快捷的起始界面,能快速的提供范本、路径、视讯墙、电子相簿和script等选择项目,使其工作流程和视频字幕解决方案得到大大的简化。 安 装 包 获 取 地 址: proDAD Vitascene 基础…

element-ui tabs+table 实现点击表格切换标签页

客户需求&#xff1a;点击主任务标签页中的表格 跳转到子任务所在的标签页 代码&#xff1a; 表格部分&#xff1a; <el-tabs type"border-card" :active-name"currentTab" tab-click"handleTabClick"><el-tab-pane class"table…

你还不会选ProfiNET和EtherCAT网线?

在现代工业自动化领域&#xff0c;ProfiNET和EtherCAT是两种非常流行的通信协议。选择合适的网线对于确保通信的稳定性和效率至关重要。 ProfiNET是什么&#xff1f; ProfiNET是一种基于以太网的通信协议&#xff0c;由德国西门子公司开发。它支持实时通信&#xff0c;广泛应用…

为什么建议多用组合少用继承

在面向对象编程中&#xff0c;组合&#xff08;Composition&#xff09;和继承&#xff08;Inheritance&#xff09;是两种实现代码复用的基本方法。以下是为什么通常建议多用组合而少用继承的一些原因&#xff1a; 灵活性与可扩展性 松耦合&#xff1a;组合通过将一个类的功…

使用SpringBoot对接Kafka

Kafka是什么&#xff0c;以及如何使用SpringBoot对接Kafka 一、Kafka与流处理 我们先来看看比较正式的介绍&#xff1a;Kafka是一种流处理平台&#xff0c;由LinkedIn公司创建&#xff0c;现在是Apache下的开源项目。Kafka通过发布/订阅机制实现消息的异步传输和处理。它具有高…

Shell脚本(.sh文件)如何执行完毕之后不自动关闭?

Shell脚本异常傲娇&#xff0c;出错后、执行完根本不给你机会让你查看报错信息、输出信息&#xff0c;直接闪退。 废话不多说&#xff0c;调教方法如下&#xff0c;直接在Shell脚本末尾加上如下代码&#xff1a; 1、实现方式一 1.1 使用read命令达到类似bat中的pause命令效果…

构建全面框架 | 简化基因组+线粒体遗传进化联合分析

近日&#xff0c;凌恩生物客户河北农业大学、浙江大学及英国格林威治大学的研究团队合作&#xff0c;在《Insect Science》杂志上发表了题为“A comprehensive framework for the delimitation of species within the Bemisia tabaci cryptic complex, a global pest-species g…

LaTeX 的使用

文章目录 TeX 编辑器文档类型中文编译文档结构preamble 导言区&#xff08;不能放正文内容&#xff09;document body 正文区 正文内容目录段落列表无序列表有序列表 图片表格交叉引用段落图片表格 转义符 数学公式数学符号行内公式行间公式有公式计数器无公式计数器 公式包含文…

OpenGL3.3_C++_Windows(11)

git submodule项目子模块 Git Submodule &#xff08;子模块的代码并不直接存储在父仓库中&#xff0c;而是通过一个指针来维护&#xff09;克隆含有子模块的仓库时&#xff0c;使用git管理Git Clone &#xff08;复制一份完整的Git仓库到本地&#xff09;若仓库包含子模块&am…

MyBatis基础教程

文章目录 一、MyBatis基本使用1.1简介1.2搭建MyBatis环境1.2.1安装MyBatis1.2.2创建MyBatis核心配置文件1.2.3创建mapper接口1.2.4创建MyBatis映射文件1.2.5实现增加功能 1.3整合log4j1.4修改与删除功能1.5查询功能1.5.1查询单个实体类对象1.5.2查询所有用户信息 二、核心配置文…

C# Secs源码 HsmsSecs测试

包含客户端和服务端 启动客户端和服务端即可互相模拟sece 通讯 也可使用secs仿真器进行测试 开启后进行相关操作&#xff0c;创建客户端连接仿真器进行操作 仿真器显示日志 相关文件&#xff0c;源码 4.9 私信即可或者看我博客描述那个地址 我是狗子&#xff0c;希望你幸…

Vue47-修改默认配置webpack.config.js文件

main.js是脚手架项目的入口文件&#xff0c;系统运行时&#xff0c;默认去找src下的main.js文件。这是webpack通过配置文件&#xff1a;webpack.config.js配置的。 脚手架把所有重要的配置文件都隐藏了&#xff0c;方式被开发者修改。 一、查看被隐藏的webpack配置 1-1、webpa…

Matlab进阶绘图第60期—带伪彩图的曲面图

带伪彩图的曲面图是曲面图与伪彩图的组合。 其中&#xff0c;伪彩图与曲面图的颜色用于表示同一个特征。 由于伪彩图无遮挡但不直观&#xff0c;曲面图直观但有遮挡&#xff0c;而将二者组合&#xff0c;可以实现优势互补。 本期就来分享一下带伪彩图的曲面图的绘制方法&…

韩兴国/姜勇团队在《Trends in Plant Science》发表植物根系氮素再分配的观点文章!

氮素是陆地生态系统中的关键限制性营养元素&#xff0c;通过生物固氮和土壤氮供应通常远低高等植物的氮需求。当土壤氮素供应无法充分满足植物茎叶生长需求时&#xff0c;植物会通过自身营养器官&#xff08;如根或根茎&#xff09;再分配来实现氮的内部循环和再利用。尽管植物…

App端接口用例设计方法和测试方法

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 前言 接口测试作为测试的重要一环&#xff0c;重点关注的是数据层面的输入输出&#xff0c;今天…