做网站公司需要多少钱/一年的百度指数
目录
一、Nginx—Rewrite概述
1、常用的Nginx正则表达式
2、Rewrite功能
3、Rewrite跳转实现
4、Rewrite执行顺序和语法格式
二、location概述
1、location分类
2、location 常用的匹配规则
3、location 优先级
案例一:
案例二:
案例三:
案例四:
案例五:
案例六:
案例七:
案例八:
案例九:
三、Nginx 常见网站配置示例
3.1、网站根目录匹配规则
3.2、静态文件处理规则
3.3、动态请求转发规则
四、Rewrite 案例
1、基于域名的跳转
2、基于客户端 IP 访问跳转
3、基于旧域名跳转到新域名后面加目录
4、基于参数匹配的跳转
5、基于目录下所有 php 结尾的文件跳转
6、基于最普通一条 url 请求的跳转
一、Nginx—Rewrite概述
1、常用的Nginx正则表达式
^ | 匹配输入字符串的起始位置 |
$ | 匹配输入字符串的结束位置 |
* | 匹配前面的字符零次或多次 |
+ | 匹配前面的字符一次或多次 |
? | 匹配前面的字符零次或一次 |
. | 匹配除 \n 之外的任何单个字符 |
\ | 转义字符,使后面的字符被视为普通字符或特殊字符 |
\d | 匹配数字(相当于 [0-9] ) |
{n} | 匹配前面的字符恰好 n 次 |
{n,} | 匹配前面的字符至少 n 次 |
{n,m} | 匹配前面的字符至少 n 次,至多 m 次 |
[] | 定义字符集,匹配括号内的任意单个字符 |
[c] | 匹配单个字符 c |
[a-z] | 匹配小写字母中的任意一个 |
[a-zA-Z0-9] | 匹配所有大小写字母或数字 |
() | 组括号,分组和捕获子表达式 |
2、Rewrite功能
①、使用nginx提供的全局变量或自己设置的变量,结合正则表达式和标记位实现URL重写以及重定向。
- 比如:更换域名后需要保持旧的域名能跳转到新的域名上、某网页发生改变需要跳转到新的页面、网站防盗链等等需求。
②、rewrite只能放在server{},location{},if{}中,并且默认只能对域名后边的除去传递的参数外的字符串起作用,
- 例如:http://www.kgc.com/abc/bbs/index.php?a=1&b=2 只对/abc/bbs/index.php重写。
3、Rewrite跳转实现
ngx_http_rewrite_module
模块:
- 支持 URL 重写和条件判断。
- 通过
if
指令支持条件判断,但不支持else
。
URL 跳转:
- 可以在
location
块中使用rewrite
指令实现从一个location
跳转到另一个location
。 - 跳转循环最多执行 10 次,超过 10 次会导致 Nginx 返回 500 错误。
PCRE 支持:
- 支持 Perl 兼容正则表达式(PCRE)语法规则进行匹配。
set
指令:
- 用于创建新的变量并设定其值。
4、Rewrite执行顺序和语法格式
①、执行顺序:
执行 server
块中的 rewrite
指令:
- 在
server
块中定义的rewrite
指令首先被执行,用于处理请求。
执行 location
匹配:
- 根据请求的 URI,Nginx 会匹配最合适的
location
块。
执行选定的 location
中的 rewrite
指令:
- 在匹配到的
location
块中,执行该块内定义的rewrite
指令。
②、语法格式:
rewrite <regex> <replacement> [flag];
regex
:
- 表示用于匹配请求 URL 的正则表达式规则。
-
replacement
:- 表示 URL 重写后的目标内容或路径。
flag
(可选):
- 用于指定重写的标志,影响重写操作的行为。
常见标志包括:
last
:停止当前location
的匹配过程,重新选择合适的location
。break
:停止当前location
的匹配过程,并继续执行当前location
中的其他指令。redirect
:发出一个临时的 302 重定向响应。permanent
:发出一个永久的 301 重定向响应。
二、location概述
1、location分类
①、精准匹配
- 语法:
location = / {...}
- 说明:严格匹配指定的 URI,只有当请求的 URI 完全匹配时,才会应用该
location
块中的配置。
②、一般匹配:
- 语法:
location / {...}
- 说明:前缀匹配,请求的 URI 以指定的前缀开头时会匹配该
location
块。适用于大多数简单的 URI 匹配情况。
③、正则匹配:
- 语法:
location ~ /regex {...}
- 说明:使用正则表达式进行匹配,适用于复杂的 URI 匹配场景。正则匹配会在一般匹配后进行。
2、location 常用的匹配规则
匹配规则 | 说明 | 示例 |
---|---|---|
= | 精确匹配 URI,URI 必须完全匹配时才应用 | location = /yudh { ... } |
^~ | 普通字符前缀匹配,匹配成功后停止其他 location 匹配 | location ^~ /images/ { ... } |
~ | 区分大小写的正则表达式匹配 | location ~ .jpg$ { ... } |
~* | 不区分大小写的正则表达式匹配 | location ~* .jPg$ { ... } |
!~ | 区分大小写的正则表达式匹配取非 | location !~ .jpg$ { ... } |
!~* | 不区分大小写的正则表达式匹配取非 | location !~* .jPg$ { ... } |
3、location 优先级
- 首先精确匹配 =
- 其次前缀匹配 ^~
- 其次是按文件中顺序的正则匹配 ~或~*
- 然后匹配不带任何修饰的前缀匹配 abc
- 最后是交给 / 通用匹配 /
案例一:
location = /http://www.kgc.com/data {# 配置
}
location = /abc {# 配置
}
- location = /http://www.kgc.com/data它不匹配/data,因为location =/http://www.kgc.com/data=为精确匹配 / ,主机名后面不能带任何字符串,比如访问 / 和 /data,则 / 匹配,/data 不匹配。
- 再比如 location = /abc,它只匹配/abc ;/abc/或 /abcd不匹配。若 location /abc,则即匹配/abc 或/abcd/ 同时也匹配。
案例二:
location / {# 配置
}
比如有以下三个地址:
- http://www.kgc.com/data
- http://www.kgc.com/data/abc
- /a/usr/local/nginx/html/data/abc
因为所有的地址都以 / 开头,所以这条规则将匹配到所有请求 比如访问 / 和 /data, 则 / 匹配,/data 也匹配。但若后面是正则表达式会和最长字符串优先匹配(最长匹配)
案例三:
location /documents/ {# 配置
}
比如有以下一个地址:
- http://www.kgc.com/documents/abc
它匹配任何以 /documents/ 开头的地址,匹配符合以后,还要继续往下搜索其它 location;只有其它 location后面的正则表达式没有匹配到时,才会采用这一条。
案例四:
location /documents/abc {# 配置
}
匹配任何以 /documents/abc 开头的地址,匹配符合以后,还要继续往下搜索其它 location;只有其它 location后面的正则表达式没有匹配到时,才会采用这一条。
案例五:
location ^~ /images/ {# 配置
}
匹配任何以 /images/ 开头的地址,匹配符合以后,停止往下搜索正则,采用这一条。
案例六:
location ~* \.(gif|jpg|jpeg)$ {# 配置
}
匹配所有以 gif、jpg或jpeg 结尾的请求,然而,所有请求 /images/ 下的图片会被 location ^~ /images/ 处理,因为 ^~ 的优先级更高,所以到达不了这一条正则。
案例七:
location /images/abc {# 配置
}
最长字符匹配到 /images/abc,优先级最低,继续往下搜索其它 location,会发现 ^~ 和 ~ 存在。
案例八:
location ~ /images/abc {# 配置
}
匹配以/images/abc 开头的,优先级次之,只有去掉 location ^~ /images/ 才会采用这一条。
案例九:
location /images/abc/1.html {# 配置
}
location ~ /images/abc/1.html {# 配置
}
匹配/images/abc/1.html 文件,如果和正则location ~ /images/abc/1.html 相比,正则优先级更高
优先级总结:
(location = 完整路径) > (location ^~ 路径) > (location ~,~* 正则顺序) > (location 部分起始路径) > (location /)
location 匹配顺序:
- 首先看 优先级:精确>前缀>正则>一般>通用
- 优先级相同:正则看上下顺序,上面的优先;一般匹配看长度,最长匹配的优先
- 精确、前缀、正则、一般 都没有匹配到,最后再看通用匹配 一般匹配
三、Nginx 常见网站配置示例
在实际网站的 Nginx 配置中,通常至少会定义三个匹配规则,以实现高效的请求处理。这些规则包括首页的匹配规则、静态文件的处理规则,以及动态请求的转发规则。
3.1、网站根目录匹配规则
这个规则用于直接匹配网站的根目录(/
),通常用于访问网站首页。因为通过域名访问网站首页的请求较为频繁,使用这个规则可以加速处理。首页可以是一个静态页面,也可以转发到后端应用服务器。
location = / {root html;index index.html index.htm;
}
解释:当请求 URI 为 /
时,Nginx 会寻找 html
目录下的 index.html
或 index.htm
作为首页响应。如果有必要,这个请求也可以被转发到后端服务器进行处理。
3.2、静态文件处理规则
Nginx 作为 HTTP 服务器,处理静态文件请求是其强项。可以通过目录匹配或后缀匹配来处理静态资源请求,任选其一或搭配使用。
目录匹配:匹配以 /static/
开头的请求,将其映射到文件系统的 /webroot/static/
目录。
location ^~ /static/ {root /webroot/static/;
}
后缀匹配:匹配特定后缀的请求,如 .html
、.gif
、.jpg
等,将这些请求映射到文件系统的 /webroot/res/
目录。
location ~* \.(html|gif|jpg|jpeg|png|css|js|ico)$ {root /webroot/res/;
}
解释:目录匹配主要用于静态资源的路径匹配,后缀匹配则用于对特定类型文件的请求匹配。根据实际需求,可以选择一种或两种方式组合使用。
3.3、动态请求转发规则
对于非静态文件的请求,通常会默认认为是动态请求,这类请求需要转发到后端应用服务器进行处理。例如,将带有 .php
或 .jsp
后缀的请求转发给 Tomcat 等后端服务器。
location / {proxy_pass http://tomcat_server;
}
解释:这个通用规则将所有未匹配到前面规则的请求(即大多数动态请求)转发到后端应用服务器 http://tomcat_server
进行处理。
四、Rewrite 案例
1、基于域名的跳转
在某些情况下,可能需要将旧域名的所有请求重定向到新域名,并且保持 URL 中的参数不变。以下是一个 Nginx 配置示例,用于将旧域名 www.kgc.com
的请求永久重定向到新域名。
编辑 Nginx 配置文件
vim /usr/local/nginx/conf/nginx.conf
设置 Nginx 服务器块
server {listen 80;server_name www.kgc.com; //旧域名charset utf-8;access_log /var/log/nginx/www.kgc.com-access.log; //设置访问日志location / {//添加域名重定向逻辑//if ($host = 'www.kgc.com') { //$host 变量表示请求的主机名rewrite ^/(.*)$ http://www.benet.com/$1 permanent; //将旧域名的请求重定向到新域名,保持参数不变}root html;index index.html index.htm;}
}
更新 /etc/hosts
文件
echo "172.16.88.22 www.kgc.com www.benet.com" >> /etc/hosts
重启 Nginx 服务并测试
systemctl reload nginx
在浏览器中访问旧域名,如 http://www.kgc.com/test/1.html
,你将会看到页面自动跳转到 http://www.benet.com/test/1.html
,并且浏览器的开发者工具中会显示返回的 301 状态码,表示实现了永久重定向。
2、基于客户端 IP 访问跳转
在某些情况下,可能需要根据客户端的 IP 地址来控制对网站的访问。例如,新的业务版本上线期间,所有的访问都需要跳转到维护页面,只有特定的公司 IP 地址可以正常访问网站。以下是 Nginx 的配置示例,用于实现这个需求。
首先,打开 Nginx 的主配置文件 nginx.conf
并进行编辑
vim /usr/local/nginx/conf/nginx.conf
在配置文件中,添加如下的 server
块配置,用于处理旧域名的请求并将其重定向到新域名。
server {listen 80;server_name www.kgc.com; //设置域名charset utf-8;access_log /var/log/nginx/www.kgc.com-access.log; //设置访问日志//设置 IP 访问控制变量set $rewrite true; //默认所有 IP 需要重定向到维护页面# 判断是否为合法 IP 地址if ($remote_addr = "172.16.88.22") { //如果客户端 IP 为 172.16.88.22set $rewrite false; //不进行重写,允许正常访问}//对于非法 IP 地址进行重写跳转if ($rewrite = true) { //如果变量 $rewrite 仍为 truerewrite (.+) /weihu.html; //重定向到维护页面}//配置维护页面的 locationlocation = /weihu.html {root /var/www/html; //设置维护页面文件所在目录}//配置正常访问的 locationlocation / {root html; //设置正常网站的根目录index index.html index.htm;}
}
在 /var/www/html/
目录下创建一个简单的维护页面
mkdir -p /var/www/html/
echo "<h1>We are maintaining now!</h1>" > /var/www/html/weihu.html
重启 Nginx 服务并测试
systemctl restart nginx
- 访问网站时,只有 IP 为 172.16.88.22的用户 能够正常访问网站的内容。
- 其他所有 IP 的访问请求都会被重定向到
/weihu.html
维护页面,并显示维护信息We are maintaining now!
。
3、基于旧域名跳转到新域名后面加目录
当旧域名需要重定向到新域名的特定路径时,可以使用 Nginx 的 rewrite
指令进行配置。以下是如何将旧域名 http://bbs.kgc.com/post/
下的所有请求跳转到新域名。
打开 Nginx 的主配置文件 nginx.conf
并进行编辑
vim /usr/local/nginx/conf/nginx.conf
在配置文件中,添加如下的 server
块配置,用于处理旧域名的重定向
server {listen 80;server_name bbs.kgc.com; //旧域名charset utf-8;access_log /var/log/nginx/www.kgc.com-access.log; //设置访问日志//设置旧域名下 /post 的重定向规则location /post {rewrite ^/post(.*)$ http://www.kgc.com/bbs/post$1 permanent; //进行永久重定向}//配置其他请求的处理location / {root html;index index.html index.htm;}
}
在新域名的对应路径下创建一个测试文件
mkdir -p /usr/local/nginx/html/bbs/post
echo "this is 1.html" > /usr/local/nginx/html/bbs/post/1.html
修改本地 hosts
文件,为了在本地测试,将旧域名映射到本地服务器的 IP 地址
echo "172.16.88.22 bbs.kgc.com" >> /etc/hosts
重启 Nginx 服务并测试
systemctl restart nginx
在浏览器中访问 http://bbs.kgc.com/post/1.html
。你应该会被重定向到http://www.kgc.com/bbs/post/1.html
。这表明重定向规则已经成功应用,并且旧域名的请求被正确地转发到了新域名下的相应路径。
4、基于参数匹配的跳转
在实际应用中,有时需要根据特定的 URL 参数模式将用户请求重定向到其他页面。下面是如何使用 Nginx 的 rewrite
指令实现这样的需求:将访问 http://www.kgc.com/100-(100|200)-100.html
的请求重定向到 http://www.kgc.com
首页。
打开 Nginx 的主配置文件 nginx.conf
并进行编辑:
vim /usr/local/nginx/conf/nginx.conf
在配置文件中,添加如下的 server
块配置,用于处理基于参数匹配的跳转:
server {listen 80;server_name www.kgc.com; //域名设置charset utf-8;access_log /var/log/nginx/www.kgc.com-access.log; //设置访问日志# 设置基于参数匹配的跳转规则if ($request_uri ~ ^/100-(100|200)-(\d+).html$) {rewrite (.+) http://www.kgc.com permanent; //重定向到首页}# 配置其他请求的处理location / {root html;index index.html index.htm;}
}
$request_uri
:表示包含请求参数的原始 URI,不包含主机名。if ($request_uri ~ ^/100-(100|200)-(\d+).html$)
:匹配 URL 中符合100-100-100.html
或100-200-100.html
模式的请求。rewrite (.+) http://www.kgc.com permanent;
:将符合条件的请求永久重定向到http://www.kgc.com
首页。
重启 Nginx 服务并测试
systemctl restart nginx
使用浏览器访问以下链接:
http://www.kgc.com/100-100-100.html
http://www.kgc.com/100-200-100.html
两者均应被重定向到 http://www.kgc.com
首页,表明 Nginx 已成功匹配并重定向请求。
Nginx 相关变量解释
- $request_uri:包含原始请求 URI 和参数(如
/abc/bbs/index.html?a=1&b=2
)。 - $uri:仅包含请求的路径部分,不包含参数(如
/abc/bbs/index.html
)。 - $document_uri:与
$uri
相同,表示当前请求的路径部分,不包含参数。
5、基于目录下所有 php 结尾的文件跳转
在某些情况下,可能需要将访问特定目录下所有以 .php
结尾的文件请求重定向到网站首页。以下是如何在 Nginx 中配置这类跳转的详细步骤。
首先,打开 Nginx 的主配置文件 nginx.conf
进行编辑:
vim /usr/local/nginx/conf/nginx.conf
在配置文件中,添加如下的 server
块,用于处理对特定目录下 .php
文件的重定向:
server {listen 80;server_name www.kgc.com; # 设置域名charset utf-8;access_log /var/log/nginx/www.kgc.com-access.log; # 设置访问日志# 配置对 /upload/ 目录下所有 .php 文件的跳转location ~* /upload/.*\.php$ {rewrite (.+) http://www.kgc.com permanent; # 将匹配的请求永久重定向到首页}# 配置其他请求的处理location / {root html;index index.html index.htm;}
}
location ~* /upload/.*\.php$
:该行定义了对/upload/
目录下所有以.php
结尾的文件进行正则匹配,~*
表示不区分大小写。rewrite (.+) http://www.kgc.com permanent;
:将符合条件的请求永久重定向到http://www.kgc.com
首页。
重启 Nginx 服务并测试重定向
systemctl restart nginx
使用浏览器访问以下链接:
http://www.kgc.com/upload/123.php
请求将被重定向到 http://www.kgc.com
首页,表明 Nginx 已成功匹配并重定向请求。
6、基于最普通一条 url 请求的跳转
在一些场景中,可能需要将访问特定页面的请求重定向到网站的首页。以下是如何在 Nginx 中配置这类 URL 请求跳转的详细步骤。
首先,打开 Nginx 的主配置文件 nginx.conf
进行编辑
vim /usr/local/nginx/conf/nginx.conf
在配置文件中,添加如下的 server
块,用于处理对特定 URL 的重定向:
server {listen 80;server_name www.kgc.com; //设置域名charset utf-8;access_log /var/log/nginx/www.kgc.com-access.log; //设置访问日志//配置对 /abc/123.html 页面请求的跳转location ~* ^/abc/123.html {rewrite (.+) http://www.kgc.com permanent; //将匹配的请求永久重定向到首页}//配置其他请求的处理location / {root html;index index.html index.htm;}
}
location ~* ^/abc/123.html
:该行定义了对具体 URL/abc/123.html
进行匹配,~*
表示不区分大小写。rewrite (.+) http://www.kgc.com permanent;
:将符合条件的请求永久重定向到http://www.kgc.com
首页。
重启 Nginx 服务并测试重定向
systemctl restart nginx
使用浏览器访问以下链接:
http://www.kgc.com/abc/123.html
请求将被重定向到 http://www.kgc.com
首页,表明 Nginx 已成功匹配并重定向请求。
相关文章:

Nginx—Rewrite
目录 一、Nginx—Rewrite概述 1、常用的Nginx正则表达式 2、Rewrite功能 3、Rewrite跳转实现 4、Rewrite执行顺序和语法格式 二、location概述 1、location分类 2、location 常用的匹配规则 3、location 优先级 案例一: 案例二: 案例三&…...

《深入浅出WPF》读书笔记.5控件与布局(上)
《深入浅出WPF》读书笔记.5控件与布局(上) 背景 深入浅出WPF书籍学习笔记附代码。WPF中数据是核心是主动的,UI是数据的表达是被动的。 程序的本质是数据算法;控件的本质是数据行为; 5.控件与布局 一、6类控件派生关系 1.布局控件:可以容纳多个控件…...

二叉树的判断
二叉树的判断 判断一颗二叉树是不是搜索二叉树 (左边的比根小,右边的比根大) 中序遍历一下,如果是的话就一定是升序的 如何判断一颗二叉树是否是完全二叉树 1.遍历任意的节点时候,如果返回右孩子没有左孩子&#x…...

Hive3:常用的内置函数
1、查看函数列表 -- 查看所有可用函数 show functions; -- 查看count函数使用方式 describe function extended count;2、数学函数 -- round 取整,设置小数精度 select round(3.1415926); -- 取整(四舍五入) select round(3.1415926, 4); -- 设置小数精度4位(四…...

设计模式---构建者模式(Builder Pattern)
构建者模式(Builder Pattern) 是一种创建型设计模式,旨在将复杂对象的构建过程与其表示分离。它允许使用相同的构建过程创建不同的表示。该模式通常用于构建复杂对象,这些对象由多个部分组成或具有多个可选属性。 构建者模式的核…...

Pytorch中transform的应用
在PyTorch中,transforms模块主要用于对图像进行预处理和数据增强,以便于训练深度学习模型。这些转换操作可以包括裁剪、缩放、旋转、翻转等,以及对图像进行标准化处理。下面将详细介绍一些常用的transforms操作及其应用。 1. 常用的transfor…...

okular阅读软件简介
okular阅读软件官网:https://okular.kde.org/zh-cn/ Okular 是一款由 KDE 开发的跨平台文档阅读器,以其功能丰富、轻巧快速而著称。它支持多种文件格式,包括 PDF、EPub、DjVu、MD 文档,以及 JPEG、PNG、GIF、Tiff 和 WebP 图像&a…...

【书生大模型实战营(暑假场)闯关材料】基础岛:第1关 书生大模型全链路开源体系
【书生大模型实战营(暑假场)闯关材料】基础岛:第1关 书生大模型全链路开源体系 简介一、背景介绍1.1 背景介绍1.2 全链路开源开放体系的优势 二、全链路开源开放体系的主要特点2.1 模型组件的公开和共享2.2 数据集的公开和共享2.3 模型的互操…...

掌握抽象工厂模式:打造灵活且强大的跨平台产品族
抽象工厂模式是一种创建型设计模式,它的核心思想是提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。这种模式通过使用抽象工厂来封装和隔离具体产品的创建过程,使得客户端可以通过工厂接口来创建一族产品,从…...

【Hadoop】建立圈内组件的宏观认识(大纲版)
Hadoop生态圈解析:各组件的主要功能及作用详解 Hadoop生态圈是由一系列开源组件组成的,这些组件共同构建了一个大规模分布式计算和存储平台。 01存储类型组件 HDFS Hadoop体系的核心组件之一,它是一个分布式文件系统,被设计用于存…...

NFS主从同步Rsync、sersync2
准备工作检查selinux 防火墙 #关闭 selinux sed -i s/^SELINUX.*/SELINUXdisabled/ /etc/selinux/config #关闭防火墙 systemctl stop firewalld;systemctl disable firewalld1.安装nfs相关包 # 所有节点安装nfs相关包 yum install nfs-utils -y systemctl enable nfs-utils …...

uniapp项目中,在原有数据中增加选中的状态,数据不改变
uniapp项目中,在原有数据中增加选中的状态,选中后打印的数据显示有变化,然而文本的数据并没有发生变化 看代码 export default {data() {return {thicate: [{ id: 1, text: "Item 1" },{ id: 2, text: "Item 2" },{ id…...

WPF自定义控件
控件模板 顾名思义就是在原有的控件上进行模版修改成自己需要的样式 把ProgressBar修改为一个水液面的进度条 <Window x:Class"XH.CustomLesson.MainWindow"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://s…...

Java中的全局异常处理器 -- GlobalExceptionHandler
开发记录:全局异常处理器笔记 import lombok.extern.slf4j.Slf4j; import org.mybatis.spring.MyBatisSystemException; import org.springframework.beans.factory.annotation.Value; import org.springframework.data.redis.RedisConnectionFailureException; im…...

R语言文本挖掘-万字详细解析tm包
tm包(Text Mining Package)是R语言中用于文本挖掘的强大工具包,它提供了一系列的功能来处理和分析文本数据。偶然看到这个包,我们一起看看其中的基本功能: 数据载入:tm包支持从多种数据源载入文本数据&…...

JWT中的Token
1.JWT是什么? jwt(json web token的缩写)是一个开放标准(rfc7519),它定义了一种紧凑的、自包含的方式,用于在各方之间以json对象安全地传输信息,此信息可以验证和信任,因…...

苹果在iOS 18.1中向第三方开发者开放iPhone的NFC芯片
苹果公司今天宣布,开发者很快就能首次在自己的应用程序中提供 NFC 交易功能,而目前这主要是Apple Pay独有的功能。从今年晚些时候的 iOS 18.1 开始,开发者将可以使用新的 API 提供独立于 Apple Pay 和 Apple Wallet 的应用内非接触式交易。 这…...

系统开发之禁止卸载应用名单
本文目的主要是记录自己系统(Android7.1系统)开发实现代码,以便后期通用的功能可以直接使用,不需要再去通过搜索然后筛选再验证的繁琐流程,大大减小自己的开发时间。 我实现思路是在系统内新增自己的数据库用来记录禁止…...

wait 和 notify
目录 wait() 方法 notify() 方法 notifyAll() 方法 nofity 和 notifyAll wait 和 notify wait 和 sleep 的区别 wait 和 join 的区别 由于线程之间是抢占式执行的,因此,线程之间执行的先后顺序难以预知,但是,在实际开发中&…...

docker 启动 mongo,redis,nacos.
docker run --name mymongodb -e MONGO_INITDB_ROOT_USERNAMEadmin -e MONGO_INITDB_ROOT_PASSWORDXiaoyusadsad -p 27017:27017 -v /path/to/mongo-data:/data/db -d mongodb/mongodb-community-server:4.4.18-ubuntu2004-v 的目录必须是绝对目录 目录必须 chmod 777 /path/…...

Docker Swarm 搭建
Docker Swarm 搭建 1. 环境介绍 操作系统Centos 7Centos 7Centos 7内核版本Linux 3.10.0-957.el7.x86_64Linux 3.10.0-957.el7.x86_64Linux 3.10.0-957.el7.x86_64主机名称swarm-managerswarm-worker1swarm-worker2IP192.168.1.100192.168.1.200192.168.1.250Docker Domain20…...

浅述TSINGSEE青犀EasyCVR视频汇聚平台与海康安防平台的区别对比
在我们的很多项目中都遇到过用户的咨询:TSINGSEE青犀EasyCVR视频汇聚平台与海康平台的区别在哪里?确实,在安防视频监控领域,EasyCVR视频汇聚平台与海康威视平台是两个备受关注的选择。它们各自具有独特的功能和优势,适…...

设计模式系列:策略模式的设计与实践
一、背景 策略模式(Strategy Pattern)是一种行为设计模式,它定义了一系列的算法,并将每一个算法封装起来,使它们可以相互替换。策略模式让算法的变化独立于使用算法的客户。 二、结构 策略模式主要包含三个角色&…...

数据挖掘之数据预处理
数据预处理是数据挖掘中的一个关键步骤,它的主要目的是对原始数据进行清洗、转换和格式化,以确保其质量和一致性,从而为后续的数据挖掘任务(如分类、回归、聚类等)提供可靠的数据基础。数据预处理一般包括以下几个主要…...

RocketMQ核心知识点整理,值得收藏!
1. 基本概念 Topic: 消息类别的集合,如订单消息发送到order_topic。标签(Tag): 同一Topic下区分不同消息的标志,实现精细化消息管理。ConsumeGroup: 消息消费组,可订阅多个Topic,一个Topic可被多个消费组订…...

微信小程序骨架屏
骨架屏是常用的一种优化方案,针对于页面还未加载完时给用户的一种反馈方式。如果自己要写骨架屏有点复杂因为页面的元素过多且不稳定,这边直接使用微信开发工具生成骨架屏。也不只有微信开发工具有像常用的抖音开发工具,字节开发工具都有对应…...

Window下node安装以及配置
在 Windows 下安装 Node.js 非常简单,你可以通过官方提供的安装程序或者使用多版本管理工具(如 NVM-Win)来进行安装。下面是两种方法的具体步骤: 1. 安装 Node.js程序 步骤如下: 访问官方网站: 访问 Node…...

校园疫情防控系统--论文pf
TOC springboot432校园疫情防控系统--论文pf 课题的来源 2019年在我国武汉爆发了一场规模非常庞大、传播速度十分迅速、对人体危害及其严重的新冠肺炎疫情。引发此次急性感染性新冠肺炎疫情的冠状病毒传播性较强,其传播主要是通过呼吸道飞沫和密切接触这两个途径…...

在Debian 9上使用Apt安装Java的方法
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 介绍 Java 和 JVM(Java 虚拟机)是许多软件的必备组件,包括 Tomcat、Jetty、Glassfish、Cassandra 和…...

人工智能在网络安全中的三大支柱
人工智能 (AI) 席卷了网络安全行业,各种供应商都在努力将 AI 融入其解决方案中。但 AI 与安全之间的关系不仅仅在于实现 AI 功能,还在于攻击者和防御者如何利用该技术改变现代威胁形势。它还涉及如何开发、更新和保护这些 AI 模型。如今,网络…...