Nginx基本操作

目录

引言

一、Nginx配置文件详解

(一)配置文件

(二)模块

二、全局配置文件

(一)关闭版本或修改版本

1.关闭版本号

2.修改版本信息

(二)修改启动的进程数

(三)cpu与work进程绑定

(四)work进程的优先级

(五)调试work进程打开的文件的个数

(六)关闭work进程

三、event,IO模型调优

四、http语句设置

(一)mime

(二)server语句

1.server下的 root

2.server块构建虚拟主机

3.alias别名

(三)localtion语句

1.=:精准匹配

2.^~:符号用于实现前缀匹配

3.~/~*:用于匹配正则表达式

4.符号优先级

(四)access 模块

1.设置访问权限

2.设置访问方式

(五)验证模块

(六)自定义错误界面

1.自定义页面

2.指定状态码

(七)验证文件是否存在

(八)长连接

(九)作为下载服务器配置


引言

nginx作为后起之秀,它的功能十分强大,在上文中进行了理论讲解和服务安装,本文将学习如何进行操作

一、Nginx配置文件详解

想要了解一个文件的具体操作,首先要了解它的配置文件及作用

nginx 官方帮助文档:    nginx documentation

(一)配置文件

Nginx的配置文件的组成部分:

主配置文件:安装目录下的nginx.conf

/apps/nginx/conf/nginx.conf

过滤出非空行和未被注释的行

#events块: #事件驱动相关的配置   同步
worker_connections 1024;:定义每个工作进程可以同时处理的最大连接数为1024。这意味
着在系统资源允许的情况下,每个工作进程最多可同时处理1024个客户端连接。
#http块:   #http/https 协议相关配置段
include       mime.types;:包含一个名为mime.types的文件,这个文件中定义了不同文
件扩展名对应的MIME类型。
default_type  application/octet-stream;:当找不到匹配MIME类型的文件时,默认
使用"application/octet-stream"作为MIME类型。
sendfile        on;:启用高效文件传输模式(sendfile系统调用),用于提高静态文件
服务性能。keepalive_timeout  65;:设置保持连接(KeepAlive)超时时间为65秒。即在
一次TCP连接上,如果没有新的请求,在65秒后Nginx会关闭连接以释放资源。
#server块:
listen       80;:指定服务器监听的端口为80(HTTP默认端口)。
server_name  localhost;:定义服务器名称为localhost,意味着它将响应发送到本地主机
名的请求。
#location块:
location / {:匹配所有根路径("/")的请求。
root   html;:设置网站根目录为html,所以当用户访问"/"时,Nginx会在服务器的html目
录下查找相应的资源。
index  index.html index.htm;:如果请求的是目录而非具体文件,则返回列表中的第一个
存在的文件作为主页,先尝试加载index.html,如果不存在则尝试加载index.htm。
error_page   500 502 503 504  /50x.html;:定义错误页面,当出现500、502、503或
504状态码时,显示位于/50x.html的错误页面。location = /50x.html {:精确匹配 "/50x.html" 的请求。root   html;:如果请求的是50x.html错误页面,则同样从服务器的html目录下查找该文件

子配置文件: include conf.d/*.conf

这一条配置信息,可以写在配置文件中的任何位置,如果写在语句块之外,那么就是全局生效,如何写在语句块中,只有在语句块中生效,例如写在http语句块中,events,语句块中的配置就不会生效

(二)模块

nginx 有多种模块

核心模块:是 Nginx 服务器正常运行必不可少的模块,提供错误日志记录 、配置文件解析 、事件驱动机制 、进程管理等核心功能

标准HTTP模块:提供 HTTP 协议解析相关的功能,比如: 端口配置 、 网页编码设置 、 HTTP响应头设置 等等

可选HTTP模块:主要用于扩展标准的 HTTP 功能,让 Nginx 能处理一些特殊的服务,比如:Flash 多媒体传输 、解析 GeoIP 请求、 网络传输压缩 、 安全协议 SSL 支持等

邮件服务模块:主要用于支持 Nginx 的 邮件服务 ,包括对 POP3 协议、 IMAP 协议和 SMTP协议的支持

Stream服务模块: 实现反向代理功能,包括TCP协议代理

第三方模块:是为了扩展 Nginx 服务器应用,完成开发者自定义功能,比如: Json 支持、 Lua 支持等

二、全局配置文件

(一)关闭版本或修改版本

1.关闭版本号

server_tokens语句:来自核心模块,使用以下链接查看官方文档的详细解释

Module ngx_http_core_module

server_tokens on:#这是默认设置,表示在响应头部(Server字段)显示完整的Nginx版#本号以及可能的操作系统和模块信息。这有助于调试,但可能会暴露服#务器的敏感信息给潜在攻击者。server_tokens off:#关闭版本信息显示,仅显示“Server: nginx”。这样可以提高安全性,#因为攻击者无法通过响应头部获取精确的Nginx版本和其他详细信息。server_tokens build:#仅显示编译时的基本版本信息,如"Server: nginx/1.23.4",不#包含详细的模块和操作系统信息。server_tokens string:#允许自定义响应头部的Server字段内容,例如 "server_tokens #my_custom_string;",将会显示 "Server: my_custom_string"

可以将版本信息隐藏起来

在http语句块中添加server_tokens  off;

注意要以封号结尾

添加完毕后重新加载配置文件

nginx  -s reload

再访问的话就看不到版本信息了

2.修改版本信息

先将服务关闭:systemctl  stop  nginx

首先去修改源码,在安装包里  注意 #号不要去掉

vim  /data/nginx-1.18.0/src/core/nginx.h

因为上面之前在配置文件中添加了server_tokens  off;关闭了版本号,所以还需要修改ngx_http_header_filter_module.c文件中49行的内容

vim /data/nginx-1.18.0/src/http/ngx_http_header_filter_module.c

而后重新编译

而后执行:make && make install

重启服务后使用客户端去访问看到的是ngx_http_header_filter_module.c文件中49行的内容

因为将版本号关闭了,在nginx.h文件中设置的版本信息无法显示

将配置文件中关闭版本号的语句注释掉

重新加载配置文件后再i访问就是在nginx.h文件中设置的版本名称

(二)修改启动的进程数

开启服务时只会打开一个进程

这是因为在配置文件中规定了数量

可以通过修改配置文件规定打开数量

worker_processes auto;
如果设置为auto  就是你真实的cpu数量

(三)cpu与work进程绑定

将Nginx工作进程绑定到指定的CPU核心,默认Nginx是不进行进程绑定的,绑定并不是意味着当前nginx进程独占以一核心CPU,但是可以保证此进程不会运行在其他核心上,这就极大减少了nginx的工作进程在不同的cpu核心上的来回跳转,减少了CPU对进程的资源分配与回收以及内存管理等,因此可以有效的提升nginx服务器的性能。

可以看到,同样的进程,在重新加载配置文件后,会在不同的cpu上跳转

通过修改配置文件实现cpu绑定

序号绑定cpu叫做亲缘性

(四)work进程的优先级

当你想将nginx的work进程的优先级调高 可以使用nice设置

默认的优先级为0

可以在配置文件中添加:worker_priority number;

工作进程优先级,-20~19

重新加载文件后查看一下优先级

(五)调试work进程打开的文件的个数

worker_rlimit_nofile
所有worker进程能打开的文件数量上限,包括:Nginx的所有连接(例如与代理服务器的连接等),而不仅仅是与客户端的连接,另一个考虑因素是实际的并发连接数不能超过系统级别的最大打开文件数的限制.最好与ulimit -n 或者limits.conf的值保持一致

首先修改配置文件

而后修改系统的最大打开文件数量:ulimit -n 或者limits.conf的值

vim  /etc/security/limits.conf

修改配置文件后需要重启

需要区分nginx的启动方式,如果是直接使用nginx命令启动,此时配置就已经设置完成了

如果使用system服务去管理nginx程序,需要在nginx的启动文件中添加:LimitNOFILE

vim /usr/lib/systemd/system/nginx.service

添加完文件后执行:systemctl daemon-reload命令,重新加载启动文件

而后重启服务生效

(六)关闭work进程

master_process off|on

是否开启Nginx的master-worker工作模式,仅用于开发调试场景,默认为on(开启)

三、event,IO模型调优

worker_connections 20000
#这个指令设置每个工作进程允许同时打开的最大连接数。在本例中,每个工作进程可以同
#时处理最多20000个客户端连接。需要与worker_rlimit_nofile搭配使用,总进程数量
#不能超过其数值,此项调优主要看硬件与软件的设置use epoll
#epoll是Linux内核提供的一种高效I/O事件通知机制。当使用epoll时,Nginx能够更高
#效地管理大量的并发连接,尤其是在高负载的场景下。epoll对于Linux系统是一种理想
#的事件模型选择。此选项是开启epoll,Nginx支持众多的事件驱动,比如:select、poll
#、epoll,只能设置在events模块中设置。accept_mutex on
#accept mutex(接受互斥锁)用于防止多个工作进程在同一时刻执行accept系统调用,
#从而避免“惊群”现象的发生。开启这个选项可以在多工作进程模式下更好地同步新连接
#的接收过程。multi_accept on
#当multi_accept设置为on时,一个工作进程在接受到新的连接请求后,如果当前工作进
#程没有满载(即未达到worker_connections设定的上限),它会继续尝试接受更多的连
#接,而不是立即返回等待其他进程接受连接。这有助于提高服务器处理新连接的速度和效率。

四、http语句设置

http 是一个大的语句块,包含若干个小的语句块

http {......  #各server的公共配置server {    #每个server用于定义一个虚拟主机,第一个server为默认虚拟服务器...}server {     ...server_name   #虚拟主机名root     #主目录alias     #路径别名location [OPERATOR] URL {     #指定URL的特性...if CONDITION {...}}}
}

在Nginx的配置文件中,http语句块是整个HTTP服务器配置的核心部分,它包含了处理所有HTTP请求相关的配置。http块通常位于全局配置文件(如nginx.conf)的顶部或中间部分,用于定义HTTP服务器的基本行为、模块设置、虚拟主机(server blocks)以及其他全局HTTP相关的参数

http {include       mime.types;
#这行指令包含了一个名为mime.types的文件,这个文件中定义了不同类型的文件与MIME类型之间
#的映射关系。例如,当用户请求一个.html文件时,Nginx会根据此文件将MIME类型设置为text/html。default_type  application/octet-stream;
#如果Nginx无法确定某个文件的具体MIME类型,它会默认使用application/octet-stream作为
#该文件的MIME类型。include       /apps/nginx/conf.d/﹡.conf;  #此行需要手动添加
#此行表示Nginx会包含/apps/nginx/conf.d/目录下的所有以.conf结尾的配置文件。这使得你
#可以通过分散在多个文件中的配置来管理不同的虚拟主机或特定的配置选项。sendfile        on;
#开启零拷贝技术keepalive_timeout  65;
#定义了HTTP连接保持激活(KeepAlive)的状态超时时间,单位是秒。此信息表示如果客户端在65
#秒内没有新的请求,Nginx将会关闭这个TCP连接。server {listen       80;server_name  localhost;
#定义了一个监听80端口的HTTP服务器实例(即默认的HTTP服务),其server_name设为localhost,
#这意味着该服务器将响应所有指向本地主机名的请求location / {
#在server块内部定义了一个匹配根路径("/")主站点的location块,主站点为安装路径。也就是
#安装nginx时  --prefix="路径"root   html;
#指定了文档根目录为html。index  index.html index.htm;}
#index index.html index.htm; 设置了默认索引文件,当访问目录而不是具体文件时,Nginx将
#尝试提供这些文件之一。error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;
#定义了错误页面处理规则,当出现HTTP状态码为500、502、503或504的错误时,Nginx将返回位
#于html目录下的50x.html文件作为错误页面。}}
}

(一)mime

此项为支持的 文件格式,如果不支持的格式 会自动帮你下载,如果支持 就会显示在网页上

(二)server语句

1.server下的 root

使用方法的官方文档

Module ngx_http_core_module

root指定了主页文件的位置

注意在编写配置文件时,每段的末尾需要以;结尾

使用客户端访问时,就会以自己设定的主站目录为根目录

2.server块构建虚拟主机

基于域名

在子配置目录中,分别建立两个不同的配置文件

分别建立number目录和name目录,并建立数据文件

建立完成后,检查配置文件,确认无误后重新加载配置文件

在客户端的/etc/hosts文件中添加服务器的域名,与服务器配置文件中的server_name名称相同,让客户端访问时能够正确解析IP地址

而后使用客户机访问不同的域名,就会得到不同的信息

基于端口

修改配置文件,使其监听不同的端口号

基于IP地址

首先添加一个IP地址,可以是临时的,实际环境中最好添加一块新的网卡,设置不同的IP地址

将配置文件中listen设置为不同的IP地址,表示监听指定地址的80端口

3.alias别名

在/data/html目录下建立word目录,并在word目录建立与访问目录同名的目录文件

而后在txt目录下建立数据文件

使用客户机测试一下

(三)localtion语句

location语句是server语句块中的组成部分

Module ngx_http_core_module :官方文档

location语句在Nginx配置文件中用于定义URL请求与服务器资源之间的映射关系,以及针对特定URL路径的处理规则。它是一个非常关键且灵活的指令,允许根据请求URI来控制Nginx如何处理客户端的HTTP请求。

在一个server中location配置段可存在多个,用于实现从uri到文件系统的路径映射;ngnix会根据用户请求的URI来检查定义的所有location,按一定的优化级找出一个最佳匹配,而后应用其配置在没有使用正则表达式的时候,nginx会先在server中的多个location选取匹配度最高的一个uri,uri是用户请求的字符串,即域名后面的web文件路径,然后使用该location模块中的正则url和字符串,如果匹配成功就结束搜索,并使用此location处理此请求。

=用于标准url前,需要请求字串与uri精确匹配,大小敏感,如果匹配成功就停止向下匹配并立即处理请求
^~用于标准url前,表示包含正则表达式,并且匹配以指定的正则表达式开头,对URI的最左边部分做匹配检查,不区分字符大小写
~用于标准url前,表示包含正则表达式,并且区分大小写
~*用于标准url前,表示包含正则表达式,并且不区分大写
无任何符号匹配起始于此uri的所有的uri

1.=:精准匹配

使用客户机访问,有任何其它字符则会匹配失败

2.^~:符号用于实现前缀匹配

此配置会匹配/opt/目录name目录下的所有文件,而后

在/opt/name目录下建立两个数据文件

使用客户端验证

3.~/~*:用于匹配正则表达式

两个符号的区别是

~:区分大小写

~*:不区分大小写

此配置的意思时,在/opt/html目录下有一个a.txt文件,输入a.txt能直接访问到,输入A.txt也可以匹配到a.txt文件

在/opt/html目录下创建数据文件

在客户机使用curl访问时需要注意,nginx服务虽然不去分大小写,但是文件系统会区分大小写,所以访问大写字母时,无法匹配到小写字母的文件,如果说不区分大小写的话,访问A.txt文件时,会匹配到a.txt的文件,显示a.txt文件的内容

访问其它文件时,即使有该文件,但无法匹配,还是会报错

使用~区分大小写

只能匹配以A开头的文件,匹配小写a时会找不到匹配的文件

4.符号优先级

location优先级:(=) > ( ^~ ) > ( ~,~*优先级一样 ) >  (/)

下面进行优先级测试

修改配置文件

添加数据文件

测试优先级

如果匹配到welcome to pla1,说明优先匹配到/data/html/pla1/a.txt,则=精准匹配的优先级最高

将精准匹配项注释或删除,重新加载文件。测试~*与/的优先级

证明,~*的优先级大于/

(四)access 模块

Nginx的access模块,通常指的是ngx_http_access_module模块。这个模块提供了基于客户端IP地址的简单访问控制功能,允许管理员通过配置文件定义哪些IP地址或地址范围可以或者不能访问服务器资源。

Module ngx_http_access_module :官方文档

使用grep过滤出access模块

1.设置访问权限

在Nginx配置中,access模块主要通过allow和deny指令来实现

allow表示允许;deny表示拒绝

建立好数据文件

使用不同IP的客户端进行测试

需要注意的时,匹配顺序由上往下时,匹配到符合要求的语句时会停止往下匹配,所以设置允许和拒绝时需要注意顺序

可以看到,匹配到allow允许时,就不会匹配下面的拒绝语句

如果要拒绝所有IP地址,可以输入deny all

deny all:拒绝所有未明确的IP地址,不在你允许列表里的所有IP地址

2.设置访问方式

如果想拒绝GET请求,可以使用limit_except指令:

默认是允许GET请求方式的

通过设置配置文件来拒绝

deny all;:拒绝指定之外的所有访问方式

(五)验证模块

在Nginx中,验证模块主要用于对客户端请求进行身份验证。虽然Nginx本身并未提供丰富的内置认证机制,但可以通过第三方模块或与外部程序(如HTTP基本认证、HTTP摘要认证)结合使用来实现

Module ngx_http_auth_basic_module:官方文档

这是Nginx的一个内置模块,用于实现HTTP基本认证

server {listen 80;server_name www.number.com;root /data/html;location /user {
#定义访问路径,如果没有。需要建立/data/html/user/目录root /data/html/;auth_basic "welcome to nignx"; 
#认证的提示信息,有的浏览器不会显示auth_basic_user_file /apps/nginx/conf.d/.nginxuser;
#定了包含用户名和加密密码的文件位置,此处的文件名叫什么,使用htpasswd命令生成的文件名就叫什么
}
}

用户信息文件需要使用htpasswd命令生成,该命令来源于http-tools包,它是httpd服务的依赖包,编译安装的话是没有这个包的,需要手动下载

yum  install httpd-tools -y。或者直接yum  install httpd -y

而后使用htpasswd命令去生成文件及信息

准备好数据文件

所有文件准备完毕后重新加载配置文件:nginx -s reload

使用谷歌浏览器验证

使用火狐浏览器

(六)自定义错误界面

可以改变默认的错误页面,同时也可以用指定的响应状态码进行响应

使用error_page语句,它来自核心模块

自定义错误界面,官方使用文档链接为:Module ngx_http_core_module

1.自定义页面

建立自定义错误页面文件,文件名必须与配置文件跳转的名称相同

使用curl浏览器访问

也可以直接跳转到主页面

就好比你输入www.jd.com/xxxxxxx,访问一个JD不存在的文件,依然可以直接跳转到JD的主页面

可以自己手动设置        

修改配置文件,让出现404报错时,跳转到主页面

2.指定状态码

正常情况下,找不到访问的文件,错误代码为404

我们可以将错误代码自定义成其它的值

这么做的目的是防止有的网站恶意截取404信息,将本网站的404报错信息,显示为其它网站的404,截取本网站的访问量

(七)验证文件是否存在

try_files会按顺序检查文件是否存在,返回第一个找到的文件或文件夹(结尾加斜线表示为文件夹),如果所有文件或文件夹都找不到,会进行一个内部重定向到最后一个参数。只有最后一个参数可以引起一个内部重定向,之前的参数只设置内部URI的指向。最后一个参数是回退URI且必须存在,否则会出现内部500错误。

来自核心模块

自定义错误界面,官方使用文档链接为:

Module ngx_http_core_module

server {listen 80;server_name www.number.com;root /data/html;location / {root  /opt/;try_files $uri $uri.html $uri/index.html /html/try.html;
#从左往右依次匹配,$uri=主站点后面的文件
#比如访问192.168.84.40/txt文件,首先匹配txt文件,如果没有,再匹配txt.html文件,如果也
#没有,再匹配txt/下的index.html文件,如果都没有,就去访问/html/try.html文件,这个文件
#必须存在,否则会出现报错。匹配所有信息,都是从设定的root目录开始,这是里/opt
#注意:每个参数之间只有一个空格
}
}

建立托底文件

使用客户端访问时,因为主站点目录下没有任何文件,所以只能访问最后的托底文件

再建立一个txt目录,而后建立一个index.html数据文件

在主站点目录下建立一个txt.html的文件,匹配到对应的文件后,就不会匹配后面的内容

在主站点目录下建立一个txt文件

(八)长连接

在HTTP协议中,长连接(Long-lived Connection)通常指的是持久连接(Persistent Connection),即TCP连接在完成一次请求/响应后并不立即关闭,而是保持一段时间的开放状态,以便后续请求可以复用该连接,从而减少建立和关闭连接的开销

可以使用telnet进行模拟演示,此命令需要手动下载

yum install telnet  -y

当请求达到设定数量后就会断开

超时后也会自动断开连接

(九)作为下载服务器配置

作为下载服务器配置时,Nginx需要对静态文件提供服务,并且可能需要调整一些与下载相关的设置,例如大文件传输、断点续传等

ngx_http_autoindex_module 模块处理以斜杠字符 "/" 结尾的请求,并生成目录列表,可以做为下载服务,默认安装此模块

官方使用文档链接为:

Module ngx_http_autoindex_module

autoindex on | off;
#自动文件索引功能,默为off
autoindex_exact_size on | off;  
#计算文件确切大小(单位bytes),off 显示大概大小(单位K、M),默认on
autoindex_localtime on | off ; 
#显示本机时间而非GMT(格林威治)时间,默认off
autoindex_format html | xml | json | jsonp; 
#显示索引的页面文件风格,默认html
limit_rate rate; 
#限制响应客户端传输速率(除GET和HEAD以外的所有方法),单位B/s,即bytes/second,
#默认值0,表示无限制,此指令由ngx_http_core_module提供

在配置文件中添加autoindex on开启文件索引

建立下载目录,并在目录下添加文件

而后使用浏览器访问测试

autoindex_exact_size off
计算文件确切大小(单位bytes),off 显示大概大小(单位K、M),默认on

显示本机时间:autoindex_localtime on

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

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

相关文章

JavaScript+PHP实现视频文件分片上传

摘要 视频文件分片上传,整体思路是利用JavaScript将文件切片,然后循环调用上传接口 upload.php 将切片上传到服务器。这样将由原来的一个大文件上传变为多个小文件同时上传,节省了上传时间,这就是文件分片上传的其中一个好处。 上…

【黑马程序员】2、TypeScript介绍_黑马程序员前端TypeScript教程,TypeScript零基础入门到实战全套教程

课程地址:【黑马程序员前端TypeScript教程,TypeScript零基础入门到实战全套教程】 https://www.bilibili.com/video/BV14Z4y1u7pi/?share_sourcecopy_web&vd_sourceb1cb921b73fe3808550eaf2224d1c155 目录 2、TypeScript初体验 2.1 安装编译TS的工…

hbuilderx创建、运行uni-app

创建uni-app 在点击工具栏里的文件 -> 新建 -> 项目: 选择uni-app类型,输入工程名,选择模板,点击创建,即可成功创建。 uni-app自带的模板有 Hello uni-app ,是官方的组件和API示例。还有一个重要模…

解决easyExcel模板填充时转义字符\{xxx\}失效

正常我们在使用easyExcel进行模板填充时,定义的变量会填充好对应的实际数据,未定义的变量会被清空,但是如果这个未定义的变量其实是模板的一部分,那么清空了就出错了。 在这张图里,上面的是模板填充后导出的文件&…

Guitar Pro8.2吉他软件2024中文版功能特点介绍

Guitar Pro 8.2是一款功能强大的吉他乐谱软件,专为吉他手、音乐制作人和音乐爱好者设计。它提供了丰富的功能,帮助用户轻松创建、编辑、打印和分享吉他乐谱。以下是Guitar Pro 8.2的主要功能特点: Guitar Pro 2024 win-安装包下载如下&#x…

华为HCIP Datacom H12-831 卷24

多选题 1、如图所示,某园区部署OSPF实现网络互通,其中Area1部署为NSSA区域。某工程师为了实现R1访问R4的环回口地址,在R4的OSPF进程中引入直连路由。以下关于该场景的描述,错误的有哪些项? A、在R4引入直连路由后,R1通过转换后的…

【鸿蒙开发】第十四章 Stage模型应用组件-任务Mission

1 任务(Mission)管理场景 任务(Mission)管理相关的基本概念如下: AbilityRecord:系统服务侧管理一个UIAbility实例的最小单元,对应一个应用侧的UIAbility组件实例。系统服务侧管理UIAbility实例数量上限为512个。 Mi…

Code-Audit(代码审计)习题记录6-7

介绍: 自己懒得搭建靶场了,靶场地址是 GitHub - CHYbeta/Code-Audit-Challenges: Code-Audit-Challenges为了方便在公网练习,可以随地访问,本文所有的题目均来源于网站HSCSEC-Code Audit 6、习题6 题目内容如下: 源代…

探索水下低光照图像检测性能,基于YOLOv5全系列【n/s/m/l/x】参数模型开发构建海底生物检测识别分析系统

海底这类特殊数据场景下的检测模型开发相对来说比较少,在前面的博文中也有一些涉及,感兴趣的话可以自行移步阅读即可: 《尝试探索水下目标检测,基于yolov5轻量级系列模型n/s/m开发构建海底生物检测系统》 《基于YOLOv5C3CBAMCBA…

【数据结构(顺序表)】

一、什么是数据结构? 数据结构是由“数据”和“结构”两词组合而来。 什么是数据?常见的数值1、2、3、4.....、教务系统里保存的用户信息(姓名、性别、年龄、学历等等)、网页里肉眼可以看到的信息(文字、图片、视频等等&#xff…

【分布式事务 XA模式】MySQL XA模式详解

MYSQL中的XA事务 写在前面1. XA事务的基本原理2. MySQL XA事务操作 写在前面 MySQL 的 5.0.3 版本开始支持XA分布式事务,并且只有innoDB存储引擎支持XA事务。 1. XA事务的基本原理 XA事务本质上是一种基于两阶段提交的分布式事务,分布式事务可以理解成…

[LWC] Components Communication

目录 Overview ​Summary Sample Code 1. Parent -> Child - Public Setter / Property / Function a. Public Property b. Public getters and setters c. Public Methods 2. Child -> Parent - Custom Event 3. Unrelated Components - LMS (Lightning Message…

【CSS-语法】

CSS-语法 ■ CSS简介■ CSS 实例■ CSS id 和 class选择器■ CSS 样式表■ 外部样式表(External style sheet)■ 内部样式表(Internal style sheet)■ 内联样式(Inline style)■ 多重样式 ■ CSS 文本■ CSS 文本颜色■ CSS 文本的对齐方式■ CSS 文本修饰■ CSS 文本转换■ CS…

网络原理 HTTP _ HTTPS

回顾 我们前面介绍了HTTP协议的请求和响应的基本结构 请求报文是由首行请求头空行正文来组成的 响应报文是由首行形影头空行响应正文组成的 我们也介绍了一定的请求头之中的键值对的属性 Host,Content-type,Content-length,User-agent,Referer,Cookie HTTP协议中的状态码 我们先…

网络原理TCP之“三次握手“

TCP内核中的建立连接 众所周知,TCP是有连接的. 当我们在客户端敲出socket new Socket(serverIp,severPort)时,就在系统内核就在建立连接 真正建立连接是在系统内核中建立的,我们程序员只是调用相关的api. 在此处,我们把TCP的建立连接称为三次握手. 系统在内核建立连接时如上…

SQL-FEFT JOIN (拼接表)

语法 SELECT column_name(s) FROM table1 LEFT JOIN table2 ON table1.column_nametable2.column_name; 按照一定规则,将表table1和表table2拼接起来。 例: Employees 表: ------------------------ | Column Name | Type | ------…

QoS 服务质量

服务质量 QoS (Quality of Service) 服务质量可用若干基本性能指标来描述,包括:可用性、差错率、响应时间、吞吐量、分组丢失率、连接建立时间、故障检测和改正时间等。 服务提供者可向其用户保证某一种等级的服务质量。 服务性能的总效果,…

【接口加密】接口加密的未来发展与应用场景

目录 3.1 接口加密与区块链技术的结合 3.1.1 区块链技术的安全特性与优势 3.1.2 接口加密在区块链中的应用案例 3.2 接口加密与物联网安全 3.2.1 物联网安全的挑战与需求 3.2.2 接口加密在物联网领域的实际应用 3.3 接口加密在金融与电子商务领域的应用 随着信息技术的不…

【Java网络编程06】HTTPS原理

1. HTTPS基本概念 HTTPS:HTTPS也是一个应用层协议,它在HTTP协议的基础上引入了一个加密层——SSL协议,区别就在于HTTP协议是基于明文传输的(不安全),使用HTTPS加密就能在一定程度上防止数据在传输过程中被…

redis架构系列——生产常用的部署模式介绍

主从高可用模式 这是最基本的高可用模式,它允许数据从主节点自动复制到一个或多个从节点。这种模式下,从节点可以处理读操作,从而实现负载均衡,并提供故障恢复的基本功能。然而,它的故障恢复不能自动化,写操…