NGINX 基础参数与功能
章节
1 NGINX 的源码安装
2 NGINX 核心配置详解
3 NGINX 之 location 匹配优先级
4 NGINX 基础参数与功能
目录
1 实现 Nginx 账户认证功能
1.1 创建htpasswd 认证文件
1.2 创建数据目录
1.3 指定认证文件路径
1.4 测试效果
2 定义重定向错误日志
2.1 指定错误日志访问路径
2.2 创建错误文件目录并增加自定义内容
2.3 测试效果
3 定义访问日志与错误日志的路径
3.1 指定日志路径
3.2 创建日志目录 并重新启动服务
3.3 访问网站查看日志是否正确加载
4 检测文件是否存在 try_files
4.1 参数介绍
4.2 语法格式
4.3 示例: 如果不存在页面, 就转到default.html页面
4.3.1 配置文件增加参数try_files
4.3.2 创建数据目录增加内容
4.3.3 实现效果
4.4 示例二:使用 return 指令返回特定状态码
5 NGINX的长连接配置
5.1 请求连接数 keepalive_requests
5.1.1 参数配置与介绍
5.1.2 重启加载参数
5.1.3 测试效果
5.2 最大长连接时间 keepalive_timeout
5.2.1 参数配置
5.2.2 动图演示效果
6 作为下载服务器配置
6.1 相关指令介绍
6.2 自动索引参数的介绍与开启
6.2.1 配置autoindex参数
6.2.2 文件制作命令 dd
6.2.3 实现效果
6.2.4 网页时间同步
7 NGINX状态页面设置
7.1 定义状态页路径
7.2 创建状态目录
7.3 实现效果
8 实现NGINX文件压缩功能
8.1 NGINX压缩功能介绍
8.2 参数介绍及解释
8.3 开启压缩功能(默认不开启的)
8.4 gzip_types 支持的压缩格式
8.5 实现效果
1 实现 Nginx 账户认证功能
由 ngx_http_auth_basic_module 模块提供此功能
示例
1.1 创建htpasswd 认证文件
[root@RHEL-9 nginx]# htpasswd -cm /usr/local/nginx/.htpasswd admin
New password:
Re-type new password:
Adding password for user admin
[root@RHEL-9 nginx]# htpasswd -m /usr/local/nginx/.htpasswd shuyan
New password:
Re-type new password:
Adding password for user shuyan[root@RHEL-9 conf.d]# ls -a /usr/local/nginx/
. client_body_temp conf.d html logs sbin uwsgi_temp
.. conf fastcgi_temp .htpasswd proxy_temp scgi_temp# -c: 创建新的 .htpasswd 文件。
# -m: 使用 MD5 加密算法。
1.2 创建数据目录
[root@RHEL-9 nginx]# mkdir /data/web/shuyan
[root@RHEL-9 nginx]# echo shuyan > /data/web/shuyan/index.html
1.3 指定认证文件路径
[root@RHEL-9 nginx]# vim /usr/local/nginx/conf.d/location.conf
server {listen 80;server_name 192.168.239.20;index index.html;location /shuyan {root /data/web;auth_basic "login password";auth_basic_user_file "/usr/local/nginx/.htpasswd";}
}[root@RHEL-9 nginx]# systemctl restart nginx
1.4 测试效果
[root@RHEL-9 conf.d]# curl www.shuyan.com/shuyan/ -u shuyan
Enter host password for user 'shuyan':
shuyan
2 定义重定向错误日志
2.1 指定错误日志访问路径
[root@RHEL-9 nginx]# vim /usr/local/nginx/conf.d/location.conf
server {listen 80;server_name 192.168.239.20;index index.html;error_page 404 /40x.html;location /shuyan {root /data/web;}location = /40x.html {root /data/web/errorpage;}}
状态码写404当然也可以写500 503
2.2 创建错误文件目录并增加自定义内容
[root@RHEL-9 nginx]# mkdir -p /data/web/errorpage[root@RHEL-9 nginx]# echo "<h1>error page</h1>" > /data/web/errorpage/40x.html
[root@RHEL-9 nginx]# vim /data/web/errorpage/40x.html
[root@RHEL-9 nginx]# systemctl restart nginx
2.3 测试效果
3 定义访问日志与错误日志的路径
3.1 指定日志路径
server {listen 80;server_name 192.168.239.20;root /data/web/html;index index.html;error_page 404 /40x.html;error_log /var/log/nginx_log/error.log;access_log /var/log/nginx_log/access.log;location /shuyan {root /data/web;auth_basic "login password";auth_basic_user_file "/usr/local/nginx/.htpasswd";}location = /40x.html {root /data/web/errorpage;}
3.2 创建日志目录 并重新启动服务
[root@RHEL-9 conf.d]# mkdir -p /var/log/nginx_log/
[root@RHEL-9 conf.d]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@RHEL-9 conf.d]# systemctl restart nginx.service
[root@RHEL-9 conf.d]# ls /var/log/nginx_log/
access.log error.log
3.3 访问网站查看日志是否正确加载
4 检测文件是否存在 try_files
4.1 参数介绍
try_files会按顺序检查文件是否存在,返回第一个找到的文件或文件夹(结尾加斜线表示为文件夹),如 果所有文件或文件夹都找不到,会进行一个内部重定向到最后一个参数。只有最后一个参数可以引起一 个内部重定向,之前的参数只设置内部URI的指向。最后一个参数是回退URI且必须存在,否则会出现内 部500错误。
4.2 语法格式
try_files path1 path2 ... pathN [default|return status|internal|break];
4.3 示例: 如果不存在页面, 就转到default.html页面
4.3.1 配置文件增加参数try_files
server {listen 80;server_name 192.168.239.20;root /data/web/html;index index.html;error_page 404 /40x.html;error_log /var/log/nginx_log/error.log;access_log /var/log/nginx_log/access.log;try_files $uri $uri.html $uri/index.html /error/default.html;location /shuyan {root /data/web;auth_basic "login password";auth_basic_user_file "/usr/local/nginx/.htpasswd";}location = /40x.html {root /data/web/errorpage;}}
4.3.2 创建数据目录增加内容
[root@RHEL-9 conf.d]# mkdir /data/web/html/error
[root@RHEL-9 conf.d]# echo this is error default > /data/web/html/error/default.html[root@RHEL-9 conf.d]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful[root@RHEL-9 conf.d]# systemctl restart nginx[root@RHEL-9 conf.d]# echo this is default > /data/web/html/index.html
4.3.3 实现效果
[root@RHEL-9 conf.d]# curl www.shuyan.com
this is default# 删除目录看效果
[root@RHEL-9 conf.d]# rm -f /data/web/html/index.html
[root@RHEL-9 conf.d]# curl www.shuyan.com
this is error default
4.4 示例二:使用 return
指令返回特定状态码
try_files $uri $uri/ @fallback;
location @fallback {return 404;
}
5 NGINX的长连接配置
5.1 请求连接数 keepalive_requests
5.1.1 参数配置与介绍
[root@RHEL-9 conf.d]# vim /usr/local/nginx/conf/nginx.conf
http {include mime.types;default_type application/octet-stream;sendfile on;keepalive_timeout 65 60;keepalive_requests 2;# 开启长连接后,返回客户端的会话保持时间为60s,
# 单次长连接累计请求达到指定次数请求或65秒就会被断开,
# 第二个数字60为发送给客户端应答报文头部中显示的超时时间设置为60s:
# 如不设置客户端将不显示超时时间。Keep-Alive:timeout=60 #浏览器收到的服务器返回的报文#如果设置为0表示关闭会话保持功能,将如下显示:#Connection:close 浏览器收到的服务器返回的报文
5.1.2 重启加载参数
[root@RHEL-9 conf.d]# systemctl restart nginx.service
5.1.3 测试效果
5.2 最大长连接时间 keepalive_timeout
5.2.1 参数配置
5.2.2 动图演示效果
如动图所示,在3秒之后就断开链接了
6 作为下载服务器配置
ngx_http_autoindex_module 模块处理以斜杠字符 "/" 结尾的请求,并生成目录列表,可以做为下载服务 配置使用
6.1 相关指令介绍
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; # 显示索引的页面文件风格,默认htmllimit_rate rate; # 限制响应客户端传输速率(除GET和HEAD以外的所有方法),# 单位B/s, bytes/second, # 默认值0,表示无限制,此指令由ngx_http_core_module提供set $limit_rate 4k; # 也可以通过变量限速,单位B/s,同时设置,此项优级高。
6.2 自动索引参数的介绍与开启
在我们平常寻找镜像源的时候会发现有这样一个界面,在NGINX内也拥有这样一个功能,此时需要再NGINX里增加一个参数autoindex
6.2.1 配置autoindex参数
指定目录 /data/web/download
[root@RHEL-9 conf.d]# vim /usr/local/nginx/conf.d/location.conf
server {listen 80;server_name 192.168.239.20;root /data/web/html;index index.html;error_page 404 /40x.html;error_log /var/log/nginx_log/error.log;access_log /var/log/nginx_log/access.log;try_files $uri $uri.html $uri/index.html /error/default.html;location /shuyan {root /data/web;auth_basic "login password";auth_basic_user_file "/usr/local/nginx/.htpasswd";}location = /40x.html {root /data/web/errorpage;}location /download {root /data/web;autoindex on;}}
6.2.2 文件制作命令 dd
[root@RHEL-9 conf.d]# mkdir /data/web/download
[root@RHEL-9 conf.d]# dd if=/dev/zero of=/data/web/download/shuyan bs=1M count=100# if 代表输入文件。如果不指定if,默认就会从stdin中读取输入。
# of 代表输出文件。如果不指定of,默认就会将stdout作为默认输出。
# bs 代表字节为单位的块大小。
# count 代表被复制的块数。
# /dev/zero 是一个字符设备,会不断返回0值字节(\0)。
单元大小 | 代码 |
---|---|
字节(1B) | c |
字节(2B) | w |
块(512B) | b |
千字节(1024B) | k |
兆字节(1024KB) | M |
吉字节(1024MB) | G |
[root@RHEL-9 conf.d]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful[root@RHEL-9 conf.d]# systemctl restart nginx.service
6.2.3 实现效果
浏览器访问指定页面查看
6.2.4 网页时间同步
autoindex_localtime 参数
本机时间而非GMT(格林威治)时间,默认off
在时间的时候会发现一个问题,发现显示时间与时间时间对不上。
将autoindex_localtime 改为 on
增加参数之后时间对的上了
location /download {root /data/web;autoindex on;autoindex_localtime on; #显示本机时间而非GMT(格林威治)时间,默认offautoindex_exact_size off;}
实现效果
7 NGINX状态页面设置
7.1 定义状态页路径
路径为 /data/web/status
[root@RHEL-9 conf.d]# vim /usr/local/nginx/conf.d/status.conf
server {listen 80;server_name www.status.com;root /data/web;index index.html;location /status {stub_status;allow 192.168.239.1/32;allow 127.0.0.1;deny all;}
}
允许本机并拒绝所有
7.2 创建状态目录
[root@RHEL-9 conf.d]# mkdir /data/web/status
[root@RHEL-9 conf.d]# systemctl restart nginx
7.3 实现效果
状态页参数说明
#状态页用于输出nginx的基本状态信息:#输出信息示例:Active connections: 2 server accepts handled requests8 8 13 # 上面三个数字分别对应accepts,handled,requests三个值Reading: 6 Writing: 179 Waiting: 106Active connections: #当前处于活动状态的客户端连接数#包括连接等待空闲连接数=reading+writing+waitingaccepts: #统计总值,Nginx自启动后已经接受的客户端请求连接的总数。handled: #统计总值,Nginx自启动后已经处理完成的客户端请求连接总数#通常等于accepts,除非有因worker_connections限制等被拒绝的连接requests: #统计总值,Nginx自启动后客户端发来的总的请求数Reading: #当前状态,正在读取客户端请求报文首部的连接的连接数#数值越大,说明排队现象严重,性能不足
Writing: #当前状态,正在向客户端发送响应报文过程中的连接数,数值越大,说明访问量很大Waiting: #当前状态,正在等待客户端发出请求的空闲连接数开启 keep-alive的情况下,#这个值等于active –(reading+writing)
8 实现NGINX文件压缩功能
8.1 NGINX压缩功能介绍
Nginx支持对指定类型的文件进行压缩然后再传输给客户端,而且压缩还可以设置压缩比例,压缩后的文 件大小将比源文件显著变小,样有助于降低出口带宽的利用率,降低企业的IT支出,不过会占用相 应的CPU资源。
Nginx对文件的压缩功能是依赖于模块 ngx_http_gzip_module,默认是内置模块
8.2 参数介绍及解释
gzip on;
作用: 启用 gzip 压缩功能。
说明: 当客户端支持 gzip 压缩时,Nginx 会对响应进行压缩后再发送。
gzip_comp_level 5;
作用: 设置 gzip 压缩级别。
说明: 这个值介于 1 到 9 之间,数值越大压缩比越高,但压缩所需的时间也会增加,所需要的性能也就越多。这里设置为 5,是一个比较平衡的选择。
gzip_min_length 1k;
作用: 设置最小响应长度以启用 gzip 压缩。
说明: 只有响应体大小超过指定的字节数时才会进行 gzip 压缩。这里设置为 1KB,意味着只有当响应体大于等于 1KB 时才会进行压缩。
gzip_http_version 1.1;
作用: 设置支持 gzip 压缩的 HTTP 版本。
说明: 这里设置为 1.1,意味着只有 HTTP 1.1 的请求才会启用 gzip 压缩。
gzip_vary on;
作用: 启用 Vary HTTP 头,告诉浏览器是否支持 gzip 压缩。
说明: 当启用 gzip_vary 时,Nginx 会在响应头中添加 Vary: Accept-Encoding
,这可以让缓存代理服务器根据客户端是否支持 gzip 压缩来决定是否缓存压缩后的响应。
gzip_types
作用: 指定哪些 MIME 类型的内容会被 gzip 压缩。
8.3 开启压缩功能(默认不开启的)
[root@RHEL-9 conf.d]# vim /usr/local/nginx/conf/nginx.conf
gzip_comp_level 5;gzip_min_length 1k;gzip_http_version 1.1;gzip_vary on;gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/gif image/png;include /usr/local/nginx/conf.d/*.conf;
8.4 gzip_types 支持的压缩格式
注意gzip_types 必须是mime.type里支持的格式
[root@RHEL-9 conf.d]# vim ../conf/mime.types
[root@RHEL-9 conf.d]# cat /var/log/messages > /data/web/html/big.html[root@RHEL-9 conf.d]# ll -h /data/web/html/
总用量 744K
-rw-r--r--. 1 root root 738K 8月 16 16:19 big.html
drwxr-xr-x. 2 root root 26 8月 16 14:41 error
-rw-r--r--. 1 root root 16 8月 16 15:03 index.html
8.5 实现效果
[root@RHEL-9 conf.d]# curl --head --compressed 192.168.239.20/index.html
HTTP/1.1 200 OK
Server: nginx/1.26.1
Date: Fri, 16 Aug 2024 08:36:28 GMT
Content-Type: text/html
Content-Length: 16
Last-Modified: Fri, 16 Aug 2024 07:03:34 GMT
Connection: keep-alive
Keep-Alive: timeout=60
ETag: "66bef9c6-10"
Accept-Ranges: bytes[root@RHEL-9 conf.d]# curl --head --compressed 192.168.239.20/big.html
HTTP/1.1 200 OK
Server: nginx/1.26.1
Date: Fri, 16 Aug 2024 08:36:39 GMT
Content-Type: text/html
Last-Modified: Fri, 16 Aug 2024 08:19:38 GMT
Connection: keep-alive
Keep-Alive: timeout=60
Vary: Accept-Encoding
ETag: W/"66bf0b9a-b85da"
Content-Encoding: gzip
相关文章:

NGINX 基础参数与功能
章节 1 NGINX 的源码安装 2 NGINX 核心配置详解 3 NGINX 之 location 匹配优先级 4 NGINX 基础参数与功能 目录 1 实现 Nginx 账户认证功能 1.1 创建htpasswd 认证文件 1.2 创建数据目录 1.3 指定认证文件路径 1.4 测试效果 2 定义重定向错误日志 2.1 指定错误日志访问路…...
css设置元素居中显示
CSS中实现居中显示可以通过不同的属性来实现,取决于你是要水平居中还是垂直居中,或者两者都要。以下是一些常用的居中方法: 1.水平居中 - 行内元素或文本 .center-text {text-align: center; } 2.水平居中 - 块级元素 .center-block {mar…...
js判断一个任意值为空包括数组和对象
在JavaScript中,判断一个变量是否为空可以考虑以下几种情况: 如果变量可能是null或undefined,可以直接判断。 对于数组,如果想要判断数组为空(长度为0),可以检查其length属性。 对于对象&…...

EmguCV学习笔记 VB.Net和C# 下的OpenCv开发
版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 笔者的博客网址:https://blog.csdn.net/uruseibest 本教程将分为VB.Net和C#两个版本分别进行发布。 教程VB.net版本请…...

“TCP粘包”不是TCP的问题!
前言 写RPC用了Netty。涉及到粘包拆包问题。想复习一下。发现网上博客多是概念模糊不清。没有触及本质或者没有讲清楚。 遂决定自己写一篇 “TCP粘包”是谁的问题? 首先我们要明确TCP是面向字节流的协议。也就是说我们在应用层想使用TCP来传输数据时,…...
Electron项目依赖管理:最佳实践与常见错误
问题一 问题描述: 输入命令 pnpm add electron 后, electron 包在执行 postinstall 脚本时,尝试从网络上下载 Electron 二进制文件,但由于网络问题(如连接超时或代理设置问题),导致下载失败。 λ pnpm a…...
华为数通路由交换HCIP/HCNP
2017-2022年软考高级网络规划设计师真题解析视频!软考复习一定要多做历年真题! 2022年软考网络规划设计师真题解析_哔哩哔哩_bilibili 2024年5月软考网络工程师真题解析合集,考后估分版【综合知识案例分析】 2024年5月软考网络工程师真题解…...
搜索面试题
1、目前怎么构建样本的?如果排序中第5个被点了,前面的作为负样本,后面的不要怎么样;为什么不好,为什么好。 点击作为负样本,曝光未点击作为负样本; 可以这样理解。您提到的排序中第5个被点的对…...
WPF学习(8) --Windows API函数的使用
一、API函数的介绍 1.FindWindow函数 [DllImport("user32.dll", CharSet CharSet.Auto)]public static extern IntPtr FindWindow(string lpClassName, string lpWindowName); 功能: FindWindow函数用于根据窗口的类名和窗口名称查找窗口的句柄(IntPtr…...

Linux系统-用户账号文件
文章目录 文件一(passwd) 文件二(shadow) 加密密码部分 举例理解 文件三(gshadow) 文件四(group) 文件五(skel) 文件六(login.defs&#…...

docker配置国内镜像加速
docker配置国内镜像加速 由于国内使用docker拉取镜像时,会经常出现连接超时的网络问题,所以配置Docker 加速来使用国内 的镜像加速服务,以提高拉取 Docker 镜像的速度。 1、备份docker配置文件 cp /etc/docker/daemon.json /etc/docker/da…...
C语言实现排序之堆排序算法
一、堆排序算法 基本思想 堆排序是一种比较有效的排序方法,其基本思想是: 构建最大堆:首先将待排序的数组构建成一个最大堆,即对于每个非叶子节点,它的值都大于或等于其子节点的值。排序:然后将堆顶元素…...

【STM32 Blue Pill编程】-外部中断配置及使用
外部中断配置及使用 文章目录 外部中断配置及使用1、中断介绍2、STM32中的中断3、硬件准备及接线4、GPIO配置5、代码实现在本文中,我们将介绍如何使用 STM32Cube IDE 中的 HAL 库配置和处理外部中断。 我们将通过一个带有按钮和 LED 的示例来演示这一点。 读完本文后,您将能够…...
MySQL 安装与配置教程:单机、主从复制与集群模式
目录 MySQL 简介MySQL 安装MySQL 基础配置MySQL 主从复制配置MySQL 集群配置总结 1. MySQL 简介 MySQL 是一个广泛使用的关系型数据库管理系统,具有高性能、高可靠性和易用性等特点。它支持多种部署模式,包括单机模式、主从复制模式(用于高…...

JavaEE 的相关知识点(一)
一、过滤器 过滤器(Filter)是一个用于对请求和响应进行预处理的组件。过滤器可以在 Java Servlet 规范中使用,通常用于执行一些通用的任务 1、过滤器的作用 过滤器是一种javaEE规范中定义的一种技术,可以让请求达到目标servlet之…...
使用Python实现深度学习模型:智能医疗影像识别与诊断
介绍 智能医疗影像识别与诊断是现代医疗技术的重要应用,通过深度学习模型,可以自动分析和识别医疗影像,提高诊断的准确性和效率。本文将介绍如何使用Python和深度学习技术来实现智能医疗影像识别与诊断。 环境准备 首先,我们需要安装一些必要的Python库: pip install …...
24.给定一个链表,实现一个算法交换每两个相邻节点并返回其头部。要求不能修改列表节点中的值,只能更改节点本身。
24. Swap Nodes in Pairs 题目 给定一个链表,交换每两个相邻节点并返回其头部。要求不能修改列表节点中的值,只能更改节点本身。 Example: Given 1->2->3->4, you should return the list as 2->1->4->3....
Python 通过UDP传输超过64k的信息
Python 通过UDP传输超过64k的信息 在网络编程中,UDP(用户数据报协议)是一种常用的传输协议。与TCP不同,UDP是无连接的,并且不保证数据包的顺序、完整性及交付。尽管如此,UDP因其较低的延迟和开销而被广泛应…...
微服务设计原则——高性能:批量
能批量就不要并发。 如果调用方需要调用我们接口多次才能进行一个完整的操作,那么这个接口设计就可能有问题。 比如获取数据的接口,如果仅仅提供getData(int id)接口,那么使用方如果要一次性获取 20 个数据,它就需要循环遍历调用…...

C:指针学习-指针变量—学习笔记
今日伊雷娜: 目录 前言: 1、字符指针变量 1.1 使用字符指针存放字符 1.2 使用字符指针变量存放字符串 2、数组指针变量 2.1 什么是数组指针变量? 2.2 数组指针变量初始化 2.3 关于数组指针类型的解析 3、函数指针变量 3.1 函数地址 …...
React Native 开发环境搭建(全平台详解)
React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力
引言: 在人工智能快速发展的浪潮中,快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型(LLM)。该模型代表着该领域的重大突破,通过独特方式融合思考与非思考…...
LLM基础1_语言模型如何处理文本
基于GitHub项目:https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken:OpenAI开发的专业"分词器" torch:Facebook开发的强力计算引擎,相当于超级计算器 理解词嵌入:给词语画"…...

mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包
文章目录 现象:mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时,可能是因为以下几个原因:1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...
python报错No module named ‘tensorflow.keras‘
是由于不同版本的tensorflow下的keras所在的路径不同,结合所安装的tensorflow的目录结构修改from语句即可。 原语句: from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后: from tensorflow.python.keras.lay…...

HashMap中的put方法执行流程(流程图)
1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中,其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下: 初始判断与哈希计算: 首先,putVal 方法会检查当前的 table(也就…...

华为OD机考-机房布局
import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...
【Android】Android 开发 ADB 常用指令
查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...
BLEU评分:机器翻译质量评估的黄金标准
BLEU评分:机器翻译质量评估的黄金标准 1. 引言 在自然语言处理(NLP)领域,衡量一个机器翻译模型的性能至关重要。BLEU (Bilingual Evaluation Understudy) 作为一种自动化评估指标,自2002年由IBM的Kishore Papineni等人提出以来,…...

【p2p、分布式,区块链笔记 MESH】Bluetooth蓝牙通信 BLE Mesh协议的拓扑结构 定向转发机制
目录 节点的功能承载层(GATT/Adv)局限性: 拓扑关系定向转发机制定向转发意义 CG 节点的功能 节点的功能由节点支持的特性和功能决定。所有节点都能够发送和接收网格消息。节点还可以选择支持一个或多个附加功能,如 Configuration …...