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 函数地址 …...

【MySQL 07】表的增删查改 (带思维导图)
文章目录 🌈 一、insert 添加数据⭐ 1. 单行数据 全列插入⭐ 2. 多行数据 指定列插入⭐ 3. 插入否则更新⭐4. 插入否则替换 🌈 二、select 查询数据⭐ 1. select 列🌙 1.1 全列查询🌙 1.2 指定列查询🌙 1.3 查询字段…...

快速上手Git
Git相关概念 Git是一个开源的分布式版本控制系统,由Linus Torvalds在2005年创建,用于有效、高速地处理从小到大的项目版本管理。它是由 Linux 之父 Linus Torvalds 开发的,并已经成为了现代软件开发领域中最流行的版本控制系统之一。 git的工…...

RTC时钟测试
1. 基础知识 Linux 的系统时间有时跟硬件时间是不同步的。 Linux时钟分为系统时钟(System Clock)和硬件(Real Time Clock,简称RTC)时钟。系统时钟是指当前Linux Kernel中的时钟,而硬件时钟则是主板上由电池供电的时钟,这个硬件时钟可以在BIO…...

大数据技术——实战项目:广告数仓(第六部分)报表数据导出至clickhouse
目录 第11章 报表数据导出 11.1 Clickhouse安装 11.2 Clickhouse建表 11.2.1 创建database 11.2.2 创建table 11.3 Hive数据导出至Clickhouse 第11章 报表数据导出 由于本项目最终要出的报表,要求具备交互功能,以及进行自助分析的能力,…...

Android studio模拟制作-简易的订餐交易小案例
一、最终呈现效果 订餐支付小案例效果 二、布局设计activity_main.xml <?xml version"1.0" encoding"utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android"http://schemas.android.com/apk/res/android"xml…...

消防隐患在线小程序的设计
管理员账户功能包括:系统首页,个人中心,用户管理,消防隐患举报管理,消防隐患分类管理,统计分类管理,处理结果管理,系统管理 微信端账号功能包括:系统首页,我…...

【Vue3】路由Params传参
【Vue3】路由Params传参 背景简介开发环境开发步骤及源码总结 背景 随着年龄的增长,很多曾经烂熟于心的技术原理已被岁月摩擦得愈发模糊起来,技术出身的人总是很难放下一些执念,遂将这些知识整理成文,以纪念曾经努力学习奋斗的日…...

授权cleanmymac访问全部磁盘 Mac授权访问权限 cleanmymac缺少权限
CleanMyMac是Mac系统下的一款专业的苹果电脑清理软件,同时也是一款优秀的电脑系统管理软件。它能有效清理系统垃圾,快速释放磁盘内存,缓解卡顿现象,保障系统顺畅地运行。 全磁盘访问权限,就好比机场内进行的安全检查。…...

Ubuntu/18.04 LTS下编译 BoringSSL 库
1、准备一个 Ubuntu/18.04 LTS 系统的设备 2、安装软件 GIT、GCC、CMAKE、G、Golang:1.16 及以上版本 3、克隆仓库源 git clone https://boringssl.googlesource.com/boringssl cd boringssl 4、使用特定版本 git checkout 9fc1c33e9c21439ce5f87855a6591a9324e569fd 5、编…...

【stm32项目】多功能智能家居室内灯光控制系统设计与实现(完整工程资料源码)
多功能智能家居室内灯光控制系统设计与实现 目录: 目录: 前言: 一、项目背景与目标 二、国内外研究现状: 2.1 国内研究现状: 2.2 国外研究现状: 2.3 发展趋势 三、硬件电路设计 3.1 总体概述 3.2 硬件连接总…...