当前位置: 首页 > news >正文

Nginx核心配置详解

一、配置文件说明

nginx官方帮助文档:nginx documentation

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

  • 主配置文件:nginx.conf
  • 子配置文件: include conf.d/*.conf
  • fastcgi, uwsgi,scgi 等协议相关的配置文件
  • mime.types:支持的mime类型,MIME(Multipurpose Internet Mail Extensions)多用途互联网邮 件扩展类型,MIME消息能包含文本、图像、音频、视频以及其他应用程序专用的数据,是设定某 种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动 使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。

nginx 配置文件格式说明:

  • 配置文件由指令与指令块构成 每条指令以;分号结尾,指令与值之间以空格符号分隔
  • 可以将多条指令放在同一行,用分号分隔即可,但可读性差,不推荐
  • 指令块以{ }大括号将多条指令组织在一起,且可以嵌套指令块
  • include语句允许组合多个配置文件以提升可维护性
  • 使用#符号添加注释,提高可读性
  • 使用$符号使用变量
  • 部分指令的参数支持正则表达式

nginx 主配置文件的配置指令方式:

directive value [value2 …];

注意:

(1) 指令必须以分号结尾

(2) 支持使用配置变量

内建变量:由Nginx模块引入,可直接引用

自定义变量:由用户使用set命令定义,格式: set variable_name value

引用变量:$variable_name

主配置文件结构:

main block:主配置段,即全局配置段,对http,mail都有效#事件驱动相关的配置
event {...
} ?#http/https 协议相关配置段
http {...
} #默认配置文件不包括下面两个块
#mail 协议相关配置段
mail {...
}#stream 服务器相关配置段
stream {...
}

默认的nginx.conf配置文件格式说明

#全局配置端,对全局生效,主要设置nginx的启动用户/组,启动的工作进程数量,工作模式,Nginx的PID路
径,日志路径等。user nginx nginx;
worker_processes ?1; ? #启动工作进程数数量events {                #events #设置快,主要影响nginx服务器与用户的网络连接,比如是否允许同时接受多个                        #网络连接,使用哪种事件驱动模型 #处理请求,每个工作进程可以同时支持的#最大连接数,是否开启对多工作进程下的网络连接进行序列化等。? ? worker_connections ?1024; ? #设置单个nginx工作进程可以接受的最大并发,作为web服务器#的时候最大并发数为 #worker_connections * #worker_processes,作为反向代理的时候为#(worker_connections * worker_processes)/2
}
http {                           #http块是Nginx服务器配置中的重要部分,缓存、代理和日志格式定        #义等绝大多数功能和第三方模块都 #可以在这设置,http块可#以包含多个server块,而一个server块中又可以包含多个locatio块,? ? ? ? ?                     #server块可以配置文件引入、MIME-Type定义、日志自定义、是否启用            #sendfile、连接超时时间和 #单个链接的请求上限等。? include ? ? ? mime.types;? default_type application/octet-stream;? sendfile ? ? ? on;         #作为web服务器的时候打开sendfile加快静态文件传输,指定是否使用#sendfile系统调用来传输文件#sendfile系统调用在两个文件描述符之间直接传递数据(完全在内核中操作)#从而避免了数据在内核缓冲区和用户缓冲区之间的拷贝,操作效率很高,被称之为零拷贝,#硬盘 >> kernel buffer (快速拷贝到kernelsocket buffer) >>协议栈。? keepalive_timeout ?65; ? #长连接超时时间,单位是秒? server {                 #设置一个虚拟机主机,可以包含自己的全局快,同时也可以包含多个                #location模块?                          #比如本虚拟机监听的端口、本虚拟机的名称和IP配置,多个server #可以使用一个端口比如都使用 #80端口提供web服务? ? ? ? listen ? ? ? 80; ? #配置server监听的端口
? ? ? server_name localhost; ? #本server的名称,当访问此名称的时候nginx会调用当前serevr#内部的配置进程匹配。? ? ? ? ? ? location / {   #location其实是server的一个指令,为nginx服务器提供比较多而且灵活的指令? ? ?                 #都是在location中体现的,主要是基于nginx接受到的请求字符串? ? ?                 #对用户请求的UIL进行匹配,并对特定的指令进行处理? ? ?                 #包括地址重定向、数据缓存和应答控制等功能都是在这部分实现? ? ?                 #另外很多第三方模块的配置也是在location模块中配置。? ? ? ? ? ? ? ? root ? html; #相当于默认页面的目录名称,默认是安装目录的相对路径,#可以使用绝对路径配置。? ? ? ? ? index index.html index.htm; #默认的页面文件名称? ? ? ? ? ? ? ? }? ? ? error_page ? 500 502 503 504 /50x.html; #错误页面的文件名称? ? ? location = /50x.html { #location处理对应的不同错误码的页面定义到/50x.html? ? ?                        #这个跟对应其server中定义的目录下。? ? ? ? ? root ? html; ? #定义默认页面所在的目录? ? ? }? }? ?
#和邮件相关的配置
#mail {
# ? ? ? ? ? ? ? ...
# ? ? ? } ? ? ? ? mail 协议相关配置段
#tcp代理配置,1.9版本以上支持
#stream {
# ? ? ? ? ? ? ? ...
# ? ? ? } ? ? ? stream 服务器相关配置段
#导入其他路径的配置文件
#include /apps/nginx/conf.d/*.conf
}

二、全局配置

Main 全局配置段常见的配置指令分类

  • 正常运行必备的配置
  • 优化性能相关的配置
  • 用于调试及定位问题相关的配置
  • 事件驱动相关的配置

全局配置说明:

user nginx nginx; #启动Nginx工作进程的用户和组
worker_processes [number | auto]; #启动Nginx工作进程的数量,一般设为和CPU核心数相同
worker_cpu_affinity 00000001 00000010 00000100 00001000 | auto ; #将Nginx工作进程绑定到指定的CPU核心,默认Nginx是不进行进程绑定的,绑定并不是意味着当前nginx进
#程独占以一核心CPU,但是可以保证此进程不运行在其他核心上,这就极大减少了nginx的工作进程在不同的
#cpu核心上的来回跳转,减少了CPU对进程的资源分配与回收以及内存管理等,因此可以有效的提升nginx服务
#器的性能。CPU MASK: 00000001:0号CPU00000010:1号CPU10000000:7号CPU#示例
worker_cpu_affinity 0001 0010 0100 1000;第0号---第3号CPU
worker_cpu_affinity 0101 1010; 
#示例
worker_processes ?4;
worker_cpu_affinity 00000010 00001000 00100000 10000000;daemon off; ? #前台运行Nginx服务用于测试、docker等环境。
master_process off|on; #是否开启Nginx的master-worker工作模式,仅用于开发调试场景,默认为
on
events {
?  worker_connections 65535; ? #设置单个工作进程的最大并发连接数? use epoll; #使用epoll事件驱动,? #Nginx支持众多的事件驱动,? #比如:select、poll、epoll,只能设置在events模块中
设置? ?? accept_mutex on; ? #on为同一时刻一个请求轮流由work进程处理,? #而防止被同时唤醒所有worker? #避免多个睡眠进程被唤醒的设置,默认为off? #新请求会唤醒所有worker进程,此过程也称为"惊群"? #因此nginx刚安装完以后要进行适当的优化。建议设置为on? ? multi_accept on; #on时Nginx服务器的每个工作进程可以同时接受多个新的网络连接? #此指令默认为off,? #即默认为一个工作进程只能一次接受一个新的网络连接? #打开后几个同接受多个。建议设置为on? 
}

1、以特定的格式(进程 IDpid、命令cmd、处理器psr)列出所有正在运行的nginx相关进程信息

ps axo pid,cmd,psr | grep nginx

2、错误日志配置

语法:error_log file [debug | info | notice | warn | error | crit | alert | emerg]

#error_log logs/error.log;

#error_log logs/error.log notice;

error_log /usr/local/nginx/logs/error.log error;

3、pid文件保存路径

pid /usr/local/nginx/logs/nginx.pid;

worker_priority 0; #工作进程优先级,-20~20(19)

worker_rlimit_nofile 65536;

#所有worker进程能打开的文件数量上限,

#包括:Nginx的所有连接(例如与代理服务器的连接等)

#而不仅仅是与客户端的连接

#另一个考虑因素是实际的并发连接数不能超过系统级别的最大打开文件数的限制

#最好与ulimit -n 或者limits.conf的值保持一致

4、修改pam限制

[root@Nginx ~]# vim /etc/security/limits.conf

* - nofile 10000

[root@Nginx ~]# sudo -u nginx ulimit -n

100000

三、http配置模块

#在响应报文中将指定的文件扩展名映射至MIME对应的类型
include ? ? ? ? ? /etc/nginx/mime.types;
default_type ? ? application/octet-stream; #除mime.types中的类型外#指定其它文件的默认MIME类型,浏览
器一般会提示下载
types {? text/html html;? image/gif gif;? image/jpeg jpg;
}

示例:识别php文件为text/html

[root@Nginx ~]# vim /usr/local/nginx/html/test.php
<?php? phpinfo();
?>
[root@Nginx ~]# curl -I 172.25.254.100/test.php
HTTP/1.1 200 OK
Server: nginx/1.26.1
Content-Type: application/octet-stream
Content-Length: 24
Last-Modified: Fri, 19 Jul 2024 09:38:52 GMT
Connection: keep-alive
ETag: "669a342c-18"
Accept-Ranges: bytes
[root@Nginx ~]# vim /usr/local/nginx/conf/nginx.conf
default_type text/html;
[root@Nginx ~]# nginx -s reload
[root@Nginx ~]# curl -I 172.25.254.10/test.php
HTTP/1.1 200 OK
Server: nginx/1.26.1
Date: Fri, 19 Jul 2024 09:49:49 GMT
Content-Type: text/html
Content-Length: 24
Last-Modified: Fri, 19 Jul 2024 09:38:52 GMT
Connection: keep-alive
ETag: "669a342c-18"
Accept-Ranges: bytes

四、核心配置示例

基于不同的IP、不同的端口以及不用得域名实现不同的虚拟主机,依赖于核心模块 ngx_http_core_module实现。

4.1 新建一个 PC web 站点

1、定义子配置文件路径

[root@Nginx ~]# mkdir /usr/local/nginx/conf.d/

2、编辑nginx.conf配置文件

添加以下到配置文件中

注意:

在配置文件的最后面添加此行

注意不要放在最前面,会导致前面的命令无法 生效

include /apps/nginx/conf/conf.d/*.conf;

3、创建虚拟主机网站配置

[root@Nginx ~]# vim /usr/local/nginx/conf.d/vhosts.conf

server {

listen 80;

server_name ou.qisheng.org;

location / {

root /webdata/nginx/qisheng.org/ou/html;

}

}

[root@Nginx ~]# mkdir -p /webdata/nginx/qisheng.org/ou/html

[root@Nginx ~]# echo ou.qisheng.org > /webdata/nginx/qisheng.org/ou/html/index.html

[root@Nginx ~]# nginx -s reload

4、设置本地解析

5、测试

4.2 root与alias

root:指定web的家目录,在定义location的时候,文件的绝对路径等于 root+location。

root示例:

1、编辑子配置文件

[root@Nginx ~]# vim /usr/local/nginx/conf.d/vhosts.conf

server {? listen 80;? server_name ou.qisheng.org;? location / {? ? ? root /webdata/nginx/qisheng.org/ou/html;? }? location /dirtest { #必须建立/mnt/dirtest才能访问? ? ? root /mnt;? }
}

2、创建目录,写入内容到html文件

[root@Nginx ~]# mkdir /mnt/dirtest/

[root@Nginx ~]# echo dirtest page > /mnt/dirtest/index.html

3、重启nginx并访问测试

[root@Nginx ~]# nginx -s reload

[root@Nginx ~]# curl ou.qisheng.org/dirtest/

alias:定义路径别名,会把访问的路径重新定义到其指定的路径,文档映射的另一种机制;仅能用于 location上下文,此指令使用较少。

alias示例:

1、编辑子配置文件

[root@Nginx ~]# vim /usr/local/nginx/conf.d/vhosts.conf

server {? listen 80;? server_name ou.qisheng.org;? location / {? ? ? root /webdata/nginx/qisheng.org/ou/html;? }? location /dirtest {? ? ? root /mnt;? }? location /alias { #注意about后不要加/? #使用alias的时候uri后面如果加了斜杠,则下面的路径配置必须加斜杠,否则403? ? ? ? alias /mnt/dirtest; #当访问alias的时候,会显示alias定义的/mnt/dirtest里面的内容 ? }
}

2、重启nginx并访问测试

[root@Nginx ~]# nginx -s reload

[root@Nginx ~]# curl ou.qisheng.org/alias/

注意:

location中使用root指令和alias指令的意义不同

root #给定的路径对应于location中的/uri左侧的/

alias #给定的路径对应于location中的/uri的完整路径

4.3 location的详细使用

  • 在一个server中location配置段可存在多个,用于实现从uri到文件系统的路径映射;

  • ngnix会根据用户请求的URI来检查定义的所有location,按一定的优先级找出一个最佳匹配

  • 而后应用其配置在没有使用正则表达式的时候,nginx会先在server中的多个location选取匹配度最 高的一个uri

  • uri是用户请求的字符串,即域名后面的web文件路径

  • 然后使用该location模块中的正则url和字符串,如果匹配成功就结束搜索,并使用此location处理 此请求。

    #语法规则:
    location [ = | ~ | ~* | ^~ ] uri { … }
    = #用于标准uri前,需要请求字串与uri精确匹配,大小敏感,如果匹配成功就停止向下匹配并立
    即处理请求
    ^~ ? #用于标准uri前,表示包含正则表达式,并且匹配以指定的正则表达式开头
    #对uri的最左边部分做匹配检查,不区分字符大小写

    ~ ? #用于标准uri前,表示包含正则表达式,并且区分大小写
    ~* ? #用于标准uri前,表示包含正则表达式,并且不区分大写
    不带符号 #匹配起始于此uri的所有的uri
    ? #用于标准uri前,表示包含正则表达式并且转义字符。可以将 . * ?等转义为普通符号

4.4 nginx 账户认证功能

由 ngx_http_auth_basic_module 模块提供此功能。

1、建立用户认证

[root@Nginx ~]# htpasswd -cmb /usr/local/nginx/conf/.htpasswd admin ouqisheng

[root@Nginx ~]# htpasswd -mb /usr/local/nginx/conf/.htpasswd ouqisheng ouqisheng

2、查看用户认证是否建立成功

[root@Nginx ~]# cat /usr/local/nginx/conf/.htpasswd

3、创建目录,并将内容写入html文件

[root@Nginx ~]# mkdir /webdata/nginx/qisheng.org/ou/login

[root@Nginx ~]# echo login > /webdata/nginx/qisheng.org/ou/login/index.html

4、编辑子配置文件

[root@Nginx ~]# vim /usr/local/nginx/conf.d/vhosts.conf

 server {? ? ? listen 80;? ? ? server_name ou.qisheng.org;? ? ? location /login {? ? ? ? ? root /webdata/nginx/qisheng.org/ou/html;? ? ? ? ? index index.html;? ? ? ? ? auth_basic "login password";? ? ? ? ? auth_basic_user_file "/usr/local/nginx/conf/.htpasswd";? ? ? }
}

5、重启nginx并测试

4.5 自定义错误页面

自 定义错误页,同时也可以用指定的响应状态码进行响应, 可用位置:http, server, location, if in location

error_page code … [=[response]] uri;

1、创建目录,并将内容写到html文件中

[root@Nginx ~]# mkdir /webdata/nginx/timinglee/lee/errors -p

[root@Nginx ~]# echo error page > /webdata/nginx/errors/40x.html

2、重启nginx并访问一个不存在的页面进行测试

4.6 自定义错误日志

1、创建日志目录

[root@Nginx ~]# mkdir/var/log/testlog

2、编辑子配置文件

[root@Nginx ~]# vim /usr/local/nginx/conf.d/vhosts.conf

server {? listen 80;? server_name ou.qisheng.org;? error_page 404 /40x.html;? access_log /var/log/testlog/access.log;? error_log /var/log/testlog/error.log;? location = /40x.html {? ? ? root /webdata/nginx/errors;? }
} 

3、重启nginx并访问不存在的页面进行测试并验证是在指定目录生成新的日志文件

4.7 检测文件是否存在

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

语法格式:

Syntax: try_files file … uri;

try_files file … =code;

Default: —

Context: server, location

1、创建目录,并写入内容到htmlwenj

[root@Nginx ~]# mkdir /webdata/nginx/qisheng.org/ou/html/error/

[root@Nginx ~]# echo “index.html is not exist” >/webdata/nginx/qisheng.org/ou/html/error/default.html

2、编辑子配置文件

[root@Nginx ~]# vim /usr/local/nginx/conf.d/vhosts.conf

server {? listen 80;? server_name ou.qisheng.org;? root /webdata/nginx/qisheng.org/ou/html;? error_page 404 /40x.html;? access_log /var/log/nginx/access.log;? error_log /var/log/nginx/error.log;? try_files $uri $uri.html $uri/index.html /error/default.html;? location = /40x.html {? ? ? root /webdata/nginx/errors;? }
}

3、测试

重启nginx,访问一个不存在的页面

4.8 长连接配置

keepalive_timeout timeout [header_timeout];

#设定保持连接超时时长,0表示禁止长连接, 默认为75s

#通常配置在http字段作为站点全局配置

keepalive_requests 数字;

#在一次长连接上所允许请求的资源的最大数量

#默认为100次,建议适当调大,比如:500

1、编辑nginx.conf配置文件

[root@Nginx ~]# vim /usr/local/nginx/conf/nginx.conf

开启长连接后,返回客户端的会话保持时间为60s,单次长连接累计请求达到指定次数请求或65秒就会被断 开,第二个数字60为发送给客户端应答报文头部中显示的超时时间设置为60s:如不设置客户端将不显示超时时 间。

2、重启nginx,测试

4.9 作为下载服务器配置

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提供
set $limit_rate 4k; #也可以通变量限速,单位B/s,同时设置,此项优级高.

实现下载站点:

注意:download不需要index.html文件

1、创建目录,编写一个文件放到目录里

[root@Nginx ~]# mkdir -p /webdata/nginx/qisheng.org/ou/html/download

2、编辑子配置文件

[root@Nginx ~]# vim /usr/local/nginx/conf.d/vhosts.conf

server {? listen 80;? server_name ou.qisheng.org;? root /webdata/nginx/qisheng.org/ou/html;? access_log /var/log/nginx/access.log;? error_log /var/log/nginx/error.log;? try_files $uri $uri.html $uri/index.html /error/default.html;? location = /40x.html {? ? ? root /webdata/nginx/errors;? }? location /download {? ? ? autoindex on; #自动索引功能? ? ? autoindex_exact_size on; #计算文件确切大小(单位bytes),此为默认值,off只显示
大概大小(单位kb、mb、gb)autoindex_localtime on; #on表示显示本机时间而非GMT(格林威治)时间,默为为off显
示GMT时间? ? ? limit_rate 1024k; #限速,默认不限速 ? }
}

3、测试

相关文章:

Nginx核心配置详解

一、配置文件说明 nginx官方帮助文档&#xff1a;nginx documentation nginx的配置文件的组成部分&#xff1a; 主配置文件&#xff1a;nginx.conf子配置文件: include conf.d/*.conffastcgi&#xff0c; uwsgi&#xff0c;scgi 等协议相关的配置文件mime.types&#xff1a;…...

十六(AJAX3)、XMLHttpRequest、Promise、简易axios封装、案例天气预报、lodash-debounce防抖

1. XMLHttpRequest 1.1 XMLHttpRequest-基本使用 /* 定义&#xff1a;XMLHttpRequest&#xff08;XHR&#xff09;对象用于与服务器交互。通过 XMLHttpRequest 可以在不刷新页面的情况下请求特定 URL&#xff0c;获取数据。这允许网页在不影响用户操作的情况下&#xff0c;更…...

12.06 深度学习-预训练

# 使用更深的神经网络 经典神经网络 import torch import cv2 from torchvision.models import resnet18,ResNet18_Weights from torch import optim,nn from torch.utils.data import DataLoader from torchvision.datasets import CIFAR10 from torchvision import tr…...

【计算机网络】期末速成(2)

部分内容来源于网络&#xff0c;侵删~ 第五章 传输层 概述 传输层提供进程和进程之间的逻辑通信&#xff0c;靠**套接字Socket(主机IP地址&#xff0c;端口号)**找到应用进程。 传输层会对收到的报文进行差错检测。 比特流(物理层)-> 数据帧(数据链路层) -> 分组 / I…...

Python学习笔记10-作用域

作用域 定义&#xff1a;Python程序程序可以直接访问命名空间的正文区域 作用&#xff1a;决定了哪一部分区域可以访问哪个特定的名称 分类&#xff1a; 局部作用域&#xff08;Local&#xff09;闭包函数外的函数中&#xff08;Enclosing&#xff09;全局作用域&#xff0…...

Sui 主网升级至 V1.38.3

Sui 主网现已升级至 V1.38.3 版本&#xff0c;同时协议升级至 69 版本。请开发者及时关注并调整&#xff01; 其他升级要点如下所示&#xff1a; 协议 #20199 在共识快速路径投票中设置允许的轮次数量。 节点&#xff08;验证节点与全节点&#xff09; #20238 为验证节点…...

linux的vdagent框架设计

1、vdagent Linux 的 spice 客户代理由两部分组成&#xff0c;一个系统范围的守护进程 spice-vdagentd 和一个 X11 会话代理 spice-vdagent&#xff0c;每个 X11 会话有一个。spice-vdagentd 通过 Sys-V initscript 或 systemd 单元启动。 如下图&#xff1a;spice-vdagent&a…...

vue3+elementPlus封装的一体表格

目录结构 源码 exportOptions.js export default reactive([{label: 导出本页,key: 1,},{label: 导出全部,key: 2,}, ])index.vue <template><div class"flex flex-justify-between flex-items-end"><div><el-button-group><slot name…...

判断是否 AGP7+ 的方法

如何判断&#xff1f; /*** 是否是AGP7.0.0及以上* param project* return*/static boolean isAGP7_0_0(Project project) {def androidComponents project.extensions.findByName("androidComponents")if (androidComponents && androidComponents.hasProp…...

使用 Streamlit +gpt-4o实现有界面的图片内容分析

在上一篇利用gpt-4o分析图像的基础上&#xff0c;进一步将基于 Python 的 Streamlit 库&#xff0c;结合 OpenAI 的 API&#xff0c;构建一个简洁易用的有界面图片内容分析应用。通过该应用&#xff0c;用户可以轻松浏览本地图片&#xff0c;并获取图片的详细描述。 调用gpt-4o…...

树莓集团是如何链接政、产、企、校四个板块的?

树莓集团作为数字影像行业的积极探索者与推动者&#xff0c;我们通过多维度、深层次的战略举措&#xff0c;将政、产、企、校四个关键板块紧密链接在一起&#xff0c;实现了资源的高效整合与协同发展&#xff0c;共同为数字影像产业的繁荣贡献力量。 与政府的深度合作政府在产业…...

Fyne ( go跨平台GUI )中文文档-Fyne总览(二)

本文档注意参考官网(developer.fyne.io/) 编写, 只保留基本用法 go代码展示为Go 1.16及更高版本,ide为goland2021.2??????? ?这是一个系列文章&#xff1a; Fyne ( go跨平台GUI )中文文档-入门(一)-CSDN博客 Fyne ( go跨平台GUI )中文文档-Fyne总览(二)-CSDN博客 Fyne…...

MySQL数据库(3)-SQL基础语言学习

1. DDL数据定义语言 1.1 什么是DDL DDL&#xff08;Data Definition Language&#xff0c;数据定义语言&#xff09;是SQL语言的一部分&#xff0c;用于定义和修改数据库结构。DDL主要包括以下三类语句&#xff1a; 1.CREATE&#xff1a;用于创建数据库对象&#xff0c;如数…...

下拉框根据sql数据回显

vue <a-form-item label"XXXX" :labelCol"labelCol" :wrapperCol"wrapperCol" required><a-select v-decorator"[disputeType, validatorRules.disputeType]" style"width: 200px" placeholder"请选择XXXX&q…...

电池销售系统

文末获取源码和万字论文&#xff0c;制作不易&#xff0c;感谢点赞支持。 摘 要 在当今信息爆炸的大时代&#xff0c;由于信息管理系统能够更有效便捷的完成信息的管理&#xff0c;越来越多的人及机构都已经引入和发展以信息管理系统为基础的信息化管理模式&#xff0c;随之信…...

四、镜像构建

四、镜像构建 从镜像大小上来说&#xff0c;一个比较小的镜像只有十几MB&#xff0c;而内核文件需要一百多MB&#xff0c;因此镜像里面是没有内核的&#xff0c;镜像是在被启动为容器后直接使用宿主机的内核&#xff0c;而镜像本身则只提供相应的rootfs&#xff0c;即系统正常…...

FastAPI 响应状态码:管理和自定义 HTTP Status Code

FastAPI 响应状态码&#xff1a;管理和自定义 HTTP Status Code 本文介绍了如何在 FastAPI 中声明、使用和修改 HTTP 状态码&#xff0c;涵盖了常见的 HTTP 状态码分类&#xff0c;如信息响应&#xff08;1xx&#xff09;、成功状态&#xff08;2xx&#xff09;、客户端错误&a…...

C#设计模式--原型模式(Prototype Pattern)

原型模式是一种创建型设计模式&#xff0c;它允许通过复制现有对象来创建新对象&#xff0c;而无需通过构造函数。这种方式可以提高性能&#xff0c;特别是在创建复杂对象时。C# 中可以通过实现 ICloneable 接口或自定义克隆方法来实现原型模式。 案例 1&#xff1a;文档编辑器…...

使用Goland对6.5840项目进行go build出现异常

使用Goland对6.5840项目进行go build出现异常 Lab地址: https://pdos.csail.mit.edu/6.824/labs/lab-mr.html项目地址: git://g.csail.mit.edu/6.5840-golabs-2024 6.5840运行环境: mac系统 goland git clone git://g.csail.mit.edu/6.5840-golabs-2024 6.5840 cd 6.5840/src…...

使用kibana实现es索引的数据映射和索引模版/组件模版

1 数据映射 数据映射官方链接 1.1 日期映射案例 1.创建一条索引。把索引中的字段生日映射为日期&#xff0c;并制定映射后的格式为年月日 PUT http://10.0.0.91:9200/zhiyong18-luckyboy-date {"mappings": {"properties": {"birthday": {&q…...

基于elementui的远程搜索下拉选择分页组件

在开发一个练手项目的时候&#xff0c;需要一个远程搜索的下拉选择组件&#xff1b; elementui自带的el-select支持远程搜索&#xff1b;但如果一次性查询的数据过多&#xff1b;会导致卡顿。故自己实现一个可分页的远程下拉选择组件 效果&#xff1a; 代码&#xff1a; <…...

每日一题 LCR 074. 合并区间

LCR 074. 合并区间 对遍历顺序注意一下就可以 class Solution { public:vector<vector<int>> merge(vector<vector<int>>& intervals) {int n intervals.size();sort(intervals.begin(),intervals.end());int idx 0;vector<vector<int&g…...

Flink SQL

Overview | Apache Flink FlinkSQL开发步骤 Concepts & Common API | Apache Flink 添加依赖&#xff1a; <dependency><groupId>org.apache.flink</groupId><artifactId>flink-table-api-java-bridge_2.11</artifactId><version>…...

[免费]SpringBoot+Vue企业OA自动化办公管理系统【论文+源码+SQL脚本】

大家好&#xff0c;我是java1234_小锋老师&#xff0c;看到一个不错的SpringBootVue企业OA自动化办公管理系统&#xff0c;分享下哈。 项目视频演示 【免费】SpringBootVue企业OA自动化办公管理系统 Java毕业设计_哔哩哔哩_bilibili 项目介绍 随着信息技术在管理上越来越深入…...

Linux下编译安装METIS

本文记录Linux下编译安装METIS的流程。 零、环境 操作系统Ubuntu 22.04.4 LTSVS Code1.92.1Git2.34.1GCC11.4.0CMake3.22.1 一、安装依赖 1.1 下载GKlib sudo apt-get install build-essential sudo apt-get install cmake 2.2 编译安装GKlib 下载GKlib代码&#xff0c; …...

LLM学习路径 - 渐进式构建知识体系

LLM学习路径 - 渐进式构建知识体系 文章目录 LLM学习路径 - 渐进式构建知识体系一、模型算法基础二、机器学习三、深度学习四、自然语言处理 (NLP)五、大规模语言模型 (LLM) References 一、模型算法基础 编程基础 Web 框架 深入学习 Gradio 与 Streamlit&#xff0c;理解其构…...

使用Unity脚本模拟绳索、布料(碰撞)

效果演示&#xff1a; 脚本如下&#xff1a; using System.Collections; using System.Collections.Generic; using UnityEngine;namespace PhysicsLab {public class RopeSolver : MonoBehaviour {public Transform ParticlePrefab;public int Count 3;public int Space 1;…...

Qt Chart 模块化封装曲线图

一 版本说明 二 完成示例 此文章包含&#xff1a;曲线轴设置&#xff0c;曲线切换&#xff0c;单条曲线显示&#xff0c;坐标轴。。。 三 曲线图UI创建 在UI界面拖放一个QWidget,然后在 Widget里面放一个 graphicsView 四 代码介绍 1 头文件 #include <QString> #in…...

【Linux】深入理解进程管理与fork系统调用的实现原理

【Linux】深入理解进程管理与fork系统调用的实现原理 进程基本概念描述进程-PCBtask_struct-PCB的一种task_ struct内容分类组织进程 查看进程通过系统调用获取进程标示符Fork 之后的代码共享1. **代码共享**2. **数据段不共享**总结 &#x1f30f;个人博客主页&#xff1a;个人…...

C语言程序设计P5-2【应用函数进行程序设计 | 第二节】——知识要点:函数的参数及返回值和函数的调用及声明

知识要点&#xff1a;函数的参数及返回值和函数的调用及声明 视频&#xff1a; 目录 一、任务分析 二、必备知识与理论 三、任务实施 一、任务分析 1.求x的n次方的值也就是求n个x的乘积&#xff0c;可把x和n作为函数的形参&#xff0c;定义一个函数power来完成这个功能&am…...

【LeetCode】169.多数元素

题目连接&#xff1a; https://leetcode.cn/problems/majority-element/solutions/2362000/169-duo-shu-yuan-su-mo-er-tou-piao-qing-ledrh/?envTypestudy-plan-v2&envIdtop-interview-150 题目描述&#xff1a; 思路一&#xff1a; 使用哈希表unordered_map记录每个元…...

0x0118消息 WM_SYSTIMER

0x0118消息就是WM_SYSTIMER 编辑框出现输入光标时,产生的消息. 0x0118 would be the undocumented WM_SYSTIMER, which appears to be used for caret blinks. 0x0118是一个undocument 消息&#xff0c; 微软没有记录。 但在一些库的源码中可以看到&#xff0c;比如ATL的库文…...

【Linux内核】Hello word程序

创建测试目录 mkdir -p ~/develop/kernel/hello-1 cd ~/develop/kernel/hello-1 创建MakeFile文件和内核.c文件 nano Makefile nano hello-1.c 编写内容 /* * hello-1.c - The simplest kernel module. */ #include <linux/module.h> /* Needed by all modules */…...

黑马redis

Redis的多IO线程只是用来处理网络请求的,对于读写操作命令Redis仍然使用单线程来处理 Redisson分布式锁实现15问 文章目录 主线程和IO线程是如何协作的Unix网络编程中的五种IO模型Linux世界一切皆文件生产上限制keys *、flushdb、flushall等危险命令keys * 遍历查询100W数据花…...

Robust Depth Enhancement via Polarization Prompt Fusion Tuning

paper&#xff1a;论文地址 code&#xff1a;github项目地址 今天给大家分享一篇2024CVPR上的文章&#xff0c;文章是用偏振做提示学习&#xff0c;做深度估计的。模型架构图如下 这篇博客不是讲这篇论文的内容&#xff0c;感兴趣的自己去看paper&#xff0c;主要是分享环境&…...

集合框架(3)Map

Map接口 现实生活与开发中&#xff0c;我们常会看到这样的一类集合&#xff1a;用户ID与账户信息、学生姓名与考试成绩、IP地址与主机名等&#xff0c;这种一一对应的关系&#xff0c;就称作映射。Java提供了专门的集合框架用来存储这种映射关系的对象&#xff0c;即java.util…...

Java反射机制—Class

Java反射机制是指在运行时动态地获取类的信息以及操作类的成员变量、方法和构造方法的能力。反射机制通过使用Class类来实现&#xff0c;Class类是Java中表示类的类。 通过反射机制&#xff0c;我们可以在运行时动态地创建对象、调用方法、访问属性等。反射机制提供了一种强大…...

C# 新语法中的字符串内插$和{}符号用法详解

自C#6.0开始提供一个新的语法糖&#xff0c;即"$" 符号&#xff0c;配合“{}”使用&#xff0c;它的作用除了是对String.format的简化&#xff0c;还可设置其格式模板&#xff0c;实现了对字符串的拼接优化。 语法格式&#xff1a; $"string {变量表达式}” 语…...

WordPress 独立站是否需要 CDN:深度解析及必要性分析

WordPress 是目前全球最流行的开源内容管理系统&#xff08;CMS&#xff09;&#xff0c;其易用性和丰富的插件生态使得它成为搭建独立站的首选。然而&#xff0c;随着流量的增加以及用户体验的需求&#xff0c;网站的速度和可靠性变得至关重要。在这种情况下&#xff0c;CDN&a…...

dell电脑开不了机怎么回事?戴尔电脑无法开机解决方法

dell戴尔电脑开不了机&#xff0c;这是很多使用dell电脑用户常遇到的问题。这种故障情况是由多种原因引起&#xff0c;包括硬件故障、软件问题或电源问题等等。dell电脑开不了机怎么办呢&#xff1f;下面便为大家介绍一下相关解决修复方法&#xff0c;帮助用户解决戴尔电脑无法…...

如何解决 JavaScript 中的数组方法不生效?

在 JavaScript 中&#xff0c;数组方法是常用的工具&#xff0c;可以用来对数组进行操作。常见的数组方法包括 push(), pop(), shift(), unshift(), map(), filter(), reduce() 等。 然而&#xff0c;有时候我们会遇到数组方法“失效”或者不按预期工作的情况。这个问题的原因…...

道可云人工智能元宇宙每日资讯|全国工商联人工智能委员会成立会议在南京举办

道可云元宇宙每日简报&#xff08;2024年12月5日&#xff09;讯&#xff0c;今日元宇宙新鲜事有&#xff1a; 全国工商联人工智能委员会成立会议在南京举办 全国工商联人工智能委员会成立会议日前在江苏省南京市举办。中央统战部副部长、全国工商联党组书记沈莹出席会议并讲话…...

华为HCIP-Datacom H12-821H12-831 (12月最新题库)

备考HCIP-datacom的小伙伴注意啦 !!! 2024年下半年12月份最新(H12-821和H12-831)题库带解析,有需要的小伙伴移动至文章末 H12-821: H12-831: 1.BGP 邻居建立过程的状态存在以下几种&#xff1a;那么建立一个成功的连接所经历的状态机顺序是 A、3-1-2-5-4 B、1-3-5-2-4 C、…...

模型案例:| 手机识别模型!

导读 2023年以ChatGPT为代表的大语言模型横空出世&#xff0c;它的出现标志着自然语言处理领域取得了重大突破。它在文本生成、对话系统和语言理解等方面展现出了强大的能力&#xff0c;为人工智能技术的发展开辟了新的可能性。同时&#xff0c;人工智能技术正在进入各种应用领…...

AWS创建ec2实例并连接成功

aws创建ec2实例并连接 aws创建ec2并连接 1.ec2创建前准备 首先创建一个VPC隔离云资源并且有公有子网 2.创建EC2实例 1.启动新实例或者创建实例 2.创建实例名 3.选择AMI使用linux(HVM) 4.选择实例类型 5.创建密钥对下载到本地并填入密钥对名称 6.选择自己创建的VPC和公有子网…...

短视频矩阵系统开发|技术源代码部署

短视频矩阵系统通过多账号运营管理、多平台视频智能分发等功能&#xff0c;助力企业实现视频引流、粉丝沉淀和转化。 短视频矩阵系统是一种创新的营销工具&#xff0c;它整合了多账号管理、视频智能分发、数据可视化等多种功能&#xff0c;为企业在短视频领域的发展提供了强大…...

C# GDI绘制的小熊进度条

C# GDI小熊进度条 1、添加自定义控件winform using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;…...

java书 核心技术+卷一+4

5.4 对象包装器与自动装箱 package 反射; import java.util.AbstractList; import java.util.ArrayList; public class test {public static void main(String[] args) {int a10;ArrayList<Integer> xxnew ArrayList<>();xx.add(a); //自动装箱int bxx.get(0);//…...

用Python开发一个经典打砖块小游戏

Python 的 pygame 库让我们可以轻松开发经典的小游戏。今天,我们将实现一个“打砖块”小游戏,带你体验游戏开发的乐趣。 一、游戏设计 1.1 游戏规则 玩家通过移动滑板接住弹起的球。球撞击砖块会让砖块消失,玩家得分。如果球落地,游戏失败。1.2 技术点 碰撞检测:检测球与…...

RTCMultiConnection 跨域问题解决

js套件地址 https://github.com/muaz-khan/RTCMultiConnection server套件地址 https://github.com/muaz-khan/RTCMultiConnection-Server 要解决的就是server代码的跨域问题 原装写法&#xff1a; 解决写法&#xff1a; // 喜欢组合语法的自己组 const io new ioServer.S…...

特朗普的风,吹倒尹锡悦

韩国总统尹锡悦被捕,成了这两天的热门新闻,但按照尹锡悦那种&ldquo;高调张扬&rdquo;的行事风格,他得到这样的结局并不算很离谱。早在首尔大学读书的时候,尹锡悦就参加了一场关于&ldquo;光州民主化运动&rdquo;的模拟审判,他扮演的检察官,直接要求处死在任…...

男生地震中背同学跑被表彰和奖励是落实立德树人根本任务的体现

2025年1月2日16时43分,宁夏银川市金凤区发生地震。地震来袭之时,教室里的书本和文具随着剧烈的震动散落一地,桌椅也不停摇晃。同学们的第一反应都是求生,大家纷纷起身,向着教室外冲去,想要尽快逃离这个危险之地。银川外国语实验学校高中部高二(6)班郭庆同学本来已经随着…...

小红书登顶87国App Store 实时翻译功能在开发了

1月15日,第三方数据平台七麦数据显示,截至发稿,小红书在87个国家登上App Store的免费排行榜第一,包括美国、加拿大、澳大利亚、英国、意大利等国家。此外,它还在39个国家的App Store免费排行榜上位列第2至第10位。一位小红书员工告诉经济观察网,社区技术部门的其中一个组…...

处级干部“反腐大片”中作诗:父母有儿无人孝,妻子有夫无人疼

1月14日晚,由云南省纪委监委宣传部、云南广播电视台联合摄制的三集电视专题片《纵深推进》第二集《纵深推进反腐败斗争》播出。其中出镜的云南省住房和城乡建设厅建筑市场监管处原处长吴志勇哽咽道:&ldquo;父母有儿无人孝,妻子有夫无人疼,女儿有父无人管,皆因贪念起祸…...

韩国空难客机“黑匣子”撞墙前4分钟停录

韩国国土交通部方面1月11日称,经调查,济州航空失事客机的两个&ldquo;黑匣子&rdquo;,也就是&ldquo;飞行数据记录器&rdquo;和&ldquo;驾驶舱语音记录器&rdquo;均没有收录客机撞上跑道尽头混凝土设施前最后4分钟的内容。也就是说,从空难当天的当地时间…...

清除腐败存量、遏制腐败增量,应尽快实行“官员财产公示制”

2025年1月6日,二十届中央纪委四次全会强调:当前反腐败斗争形势仍然严峻复杂,腐败存量尚未清除,增量还在持续发生,铲除腐败滋生土壤和条件任务仍然艰巨繁重;反腐败斗争必须坚定不移,任何犹豫动摇、松懈手软或半途而废,都将犯颠覆性错误。笔者认为,无论是清除腐败存量、…...