nginx--技术文档--架构体系--底层核心-原理
Nginx的架构体系可以概括为“一个核心、两个模型。”
“一个核心”指Nginx的核心功能,即HTTP请求处理。Nginx作为一个高性能的Web服务器,其核心功能是处理HTTP请求,包括接收请求、解析请求、处理请求和返回响应等。
“两个模型”指Nginx的多进程模型和模块化设计。多进程模型包括master进程和多个worker进程。Master进程负责管理worker进程,处理异常事件,并且监控整个系统的运行状态。Worker进程是实际处理HTTP请求的工作进程,它们负责接收客户端的请求、处理请求并返回响应。
模块化设计是Nginx的另一个重要特点。Nginx具有丰富的模块,包括HTTP模块、事件模块、负载均衡模块等。这些模块可以通过配置文件进行启用或禁用,使得Nginx可以根据实际需求进行灵活的定制和扩展。
整个Nginx架构被设计为一种依赖事件驱动、异步、非阻塞的模式。这种设计使得Nginx能够充分利用多核处理器的能力,提高并发处理能力,并且实现负载均衡和高可靠性。同时,Nginx的动态扩展和热更新的能力也得到了增强。
综上所述,Nginx的架构体系是以HTTP请求处理为核心,以多进程模型和模块化设计为特点,实现了一种依赖事件驱动、异步、非阻塞的处理方式,从而提高了系统的并发处理能力、可靠性和动态扩展能力。
Nginx的核心组件包括以下几个:
- CoreModule:用于控制Nginx服务器的基本功能,包括启动、停止、重新启动等操作。
- EventsModule:用于控制Nginx如何处理连接,包括接受新的连接、处理已建立的连接等。
- HTTPCoreModule:这是Nginx服务器的核心模块,提供了HTTP访问的基本功能。
此外,Nginx还有许多可选的模块,包括HTTP模块、EVENT事件模块、MAIL模块等。这些模块可以提供更多的功能,如HTTP重定向、HTTP请求方法控制、HTTP头重写、HTTP响应缓存等。
组件详细:
-
CoreModule: CoreModule是Nginx的核心模块,负责控制Nginx服务器的基本功能。它提供了启动、停止、重新启动等操作,以及监控Nginx服务器的状态。CoreModule还负责解析配置文件,生成Nginx上下文,并将指令传递给其他模块进行处理。此外,CoreModule还控制着全局变量和共享内存等资源的分配。
-
EventsModule: EventsModule是Nginx的另一个核心模块,负责控制Nginx如何处理连接。它包括接受新的连接、处理已建立的连接等操作。EventsModule还提供了对各种网络事件的处理,如连接超时、读取超时、写操作阻塞等。此外,EventsModule还提供了对各种网络协议的支持,如TCP、UDP等。
-
HTTPCoreModule: HTTPCoreModule是Nginx服务器的核心模块,提供了HTTP访问的基本功能。它包括处理HTTP请求、解析HTTP头部、生成HTTP响应等操作。HTTPCoreModule还提供了HTTP重定向、HTTP请求方法控制、HTTP头重写、HTTP响应缓存等功能。此外,HTTPCoreModule还支持HTTP协议的各种版本,如HTTP/1.0、HTTP/1.1等。
除了以上三个核心模块外,Nginx还有许多可选的模块,包括HTTP模块、EVENT事件模块、MAIL模块等。这些模块可以提供更多的功能,如HTTP重定向、HTTP请求方法控制、HTTP头重写、HTTP响应缓存等。要使用这些模块,需要在配置文件中进行相应的配置。需要注意的是,不是所有的模块都可以同时使用,有些模块之间可能会有冲突。因此,在使用这些模块时,需要根据实际情况进行选择和配置。
总之,Nginx的核心组件包括CoreModule、EventsModule和HTTPCoreModule,它们分别负责控制Nginx的基本功能、连接处理和HTTP访问功能。同时,Nginx还有许多可选的模块可以提供更多的功能。在使用Nginx时,需要根据实际需求进行相应的配置和使用。
工作原理
nginx使用场景
Nginx是一款高性能的Web服务器和反向代理服务器,具有出色的性能和可靠性。以下是一些常见的使用场景:
- 静态文件服务:Nginx可以提供高效的静态资源服务,包括HTML、CSS、JavaScript、图片等。它可以快速响应大量的静态请求,减轻其他动态服务器的负担,从而提高系统的整体性能。
- 反向代理:Nginx可以作为反向代理服务器,将客户端的请求转发到后端的服务器进行处理,并返回响应给客户端。这样可以隐藏真实的服务器的IP地址,提高服务器的安全性,并且可以平均分配负载,提高系统的可用性和可靠性。
- 负载均衡:当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,可以使用Nginx作为反向代理服务器进行负载均衡。Nginx可以通过优化请求的分配和处理方式,将请求分发到多个服务器上,提高系统的吞吐量和响应速度。
- 虚拟主机:Nginx可以实现虚拟主机,即在一台服务器上运行多个网站,每个网站拥有独立的域名和配置。这样可以充分利用服务器的资源,减少服务器的数量,降低成本。
- HTTPS代理:Nginx可以作为HTTPS代理服务器,提供HTTPS协议的代理服务。它可以实现SSL/TLS协议的加密通信,保证数据传输的安全性。
总之,Nginx的使用场景非常广泛,包括静态文件服务、反向代理、负载均衡、虚拟主机和HTTPS代理等。这些场景都可以通过配置Nginx的相应模块来实现。
nginx静态文件服务--工作原理
Nginx的静态文件服务工作原理是基于其模块化的架构和事件驱动的处理方式。Nginx的核心功能是处理HTTP请求,因此其静态文件服务也是针对HTTP协议的。
首先,Nginx的静态文件服务会根据配置文件指定的路径,找到要返回给用户的静态文件。这些文件可以是HTML、CSS、JavaScript、图片等静态资源。
当用户发起请求时,Nginx会根据请求的URL路径和查询参数,匹配相应的配置文件规则,找到要返回的静态文件。然后,Nginx会检查该文件是否存在,如果存在则直接返回给用户,否则会返回404错误。
在返回静态文件的过程中,Nginx会根据文件的元数据(如文件大小、修改时间等),将文件描述符(file descriptor)传递给内核,然后通过内核的TCP/IP协议栈将文件内容发送给用户。
底层原理方面,Nginx使用了事件驱动的方式进行网络通信。其核心是一个事件模块,用于监听网络事件,如连接建立、数据接收、连接关闭等。当有网络事件发生时,事件模块会通知处理该事件的模块进行处理。
Nginx还使用了异步非阻塞的IO模型,使得其能够同时处理多个请求,而不会因为某个请求的阻塞而影响其他请求的处理。此外,Nginx还支持多进程或多线程的方式进行并发处理,提高了系统的并发处理能力和响应速度。
总的来说,Nginx的静态文件服务工作原理是通过匹配配置文件规则找到要返回的静态文件,然后将其直接返回给用户。底层原理则是基于事件驱动和异步非阻塞IO模型,实现了高效的网络通信和处理。
nginx静态文件服务--实现思路
要使用Nginx实现静态文件服务,可以按照以下步骤进行操作:
- 安装Nginx:首先,确保已经安装了Nginx。如果没有安装,可以根据不同的操作系统,参考Nginx的官方文档或相关教程进行安装。
- 配置Nginx:打开Nginx的配置文件,通常位于/etc/nginx/nginx.conf或/etc/nginx/conf.d/default.conf。使用文本编辑器打开该文件。
- 配置Server块:在配置文件中,找到或创建一个名为server的块,用于配置Nginx的服务器配置。该块内包含一些与服务器相关的配置选项,如监听端口、域名等。
- 配置静态文件路径:在server块中,添加以下配置指令,指定静态文件的根目录路径:
root /path/to/static/files;
将"/path/to/static/files"替换为实际的静态文件所在的目录路径。
5. 配置索引文件:为了方便用户浏览静态文件,可以添加索引文件的配置指令。将以下指令添加到server块中:
index index.html index.htm;
这将指定在找不到目录的情况下,返回index.html或index.htm文件。
6. 配置try_files指令:为了处理找不到文件的请求,可以使用try_files指令。将以下指令添加到server块中:
try_files $uri $uri/ =404;
这表示如果请求的URI不存在,则返回404错误。
7. 保存配置文件:保存并关闭配置文件。 8. 检查配置文件:运行以下命令验证Nginx的配置文件是否正确:
sudo nginx -t
如果没有错误提示,说明配置文件没有语法错误。
9. 重载Nginx配置:使用以下命令重新加载Nginx配置,使其生效:
sudo service nginx reload
或者,如果使用的是Nginx最新版本,可以使用以下命令:
sudo systemctl reload nginx
- 测试静态文件服务:访问您的服务器的域名或IP地址,尝试访问提供的静态文件。如果一切正常,应该能够看的静态文件并能够下载或打开它们。
nginx反向代理--工作原理
Nginx的反向代理工作原理主要是将客户端的请求转发到后端的服务器进行处理,并将处理后的结果返回给客户端。反向代理的方式可以隐藏后端服务器的真实IP地址,提高服务器的安全性,并且可以分担负载,提高系统的可用性和可靠性。
当一个外部的客户端向Nginx代理服务器发送一个HTTP请求时,Nginx会将这个请求接收到。然后,Nginx会分析请求的URL和其他头部信息,确定目标后端服务器和端口号。接下来,Nginx会通过TCP协议与目标后端服务器建立一个连接,并将接收到的请求数据发送给后端服务器。
在后端服务器处理请求并返回结果给Nginx时,Nginx会将接收到的响应数据缓存起来,并将响应返回给客户端。同时,Nginx还会根据配置文件中的规则对响应数据进行一些额外的处理,如修改响应头部信息、缓存响应等。
底层原理方面,Nginx的反向代理功能主要基于其事件驱动的架构和异步非阻塞的IO模型。Nginx的事件驱动架构可以高效地处理网络事件,如连接建立、数据接收、连接关闭等。其异步非阻塞的IO模型允许Nginx同时处理多个请求,而不会因为某个请求的阻塞而影响其他请求的处理。
Nginx的反向代理功能主要依赖于其模块化的架构。其中,HTTP模块是实现反向代理功能的核心模块之一。该模块可以解析HTTP请求和响应,并根据配置文件中的规则将请求转发到后端服务器,将响应返回给客户端。
总之,Nginx的反向代理工作原理是将客户端的请求转发到后端服务器进行处理,并将处理后的结果返回给客户端。底层原理则是基于事件驱动和异步非阻塞IO模型,实现了高效的网络通信和处理。
nginx反向代理--实现思路
当使用Nginx作为反向代理服务器时,可以按照以下步骤进行配置和操作:
- 安装Nginx:首先,确保已经安装了Nginx。如果没有安装,可以根据不同的操作系统,参考Nginx的官方文档或相关教程进行安装。
- 配置Nginx:打开Nginx的配置文件,通常位于/etc/nginx/nginx.conf或/etc/nginx/conf.d/default.conf。使用文本编辑器打开该文件。
- 配置反向代理:在配置文件中,找到或创建一个名为server的块,用于配置反向代理服务器的配置。在该块内,添加以下指令,指定后端服务器的地址和端口号:
location / {proxy_pass http://backend_server_address:backend_server_port;
}
将"backend_server_address"和"backend_server_port"替换为实际的后端服务器地址和端口号。 4. 配置代理服务器:如果后端服务器需要特殊的代理设置,如身份验证、安全协议等,可以在location块内添加相应的代理配置指令。例如,以下指令配置了HTTP基本身份验证:
location / {proxy_pass http://backend_server_address:backend_server_port;proxy_http_version 1.1;proxy_set_header Authorization $http_authorization;
}
- 配置缓存:如果需要缓存后端服务器的响应,可以使用Nginx的缓存功能。在配置文件中找到或创建一个名为proxy_cache的块,并将其嵌套在location块内。根据需要配置缓存的相关指令,如缓存路径、大小等。
- 保存配置文件:保存并关闭配置文件。
- 检查配置文件:运行以下命令验证Nginx的配置文件是否正确:
sudo nginx -t
如果没有错误提示,说明配置文件没有语法错误。
8. 重载Nginx配置:使用以下命令重新加载Nginx配置,使其生效:
sudo service nginx reload
或者,如果您使用的是Nginx最新版本,可以使用以下命令:
sudo systemctl reload nginx
- 测试反向代理:尝试通过外部客户端访问Nginx代理服务器,请求将被转发到后端服务器并返回响应。如果一切正常,您应该能够看到后端服务器返回的内容。
nginx负载均衡--工作原理
Nginx实现负载均衡的工作原理主要是将客户端的请求根据一定的负载均衡算法分配给后端服务器进行处理,从而实现横向扩展和负载分担。负载均衡可以有效地分担单个服务器的负载压力,提高系统的稳定性和处理能力。
当一个外部的客户端向Nginx代理服务器发送一个HTTP请求时,Nginx会首先接收到这个请求。然后,Nginx会根据配置文件中的负载均衡算法和后端服务器列表,选择一个最优的后端服务器,并将请求转发给该服务器。
在转发请求时,Nginx会根据配置文件中的规则生成一个唯一的标识符(如请求的URL路径),并将该标识符插入到请求头部或请求行中。这样,后端服务器可以根据该标识符将请求路由到相应的处理程序或后端服务实例。
在后端服务器处理请求并返回响应给Nginx时,Nginx会根据配置文件中的规则对响应数据进行一些额外的处理,如修改响应头部信息、缓存响应等。然后,Nginx会将处理后的响应返回给客户端。
底层原理方面,Nginx实现负载均衡主要基于其事件驱动的架构和异步非阻塞的IO模型。Nginx的事件驱动架构可以高效地处理网络事件,如连接建立、数据接收、连接关闭等。其异步非阻塞的IO模型允许Nginx同时处理多个请求,而不会因为某个请求的阻塞而影响其他请求的处理。
Nginx的负载均衡功能主要依赖于其模块化的架构。其中,HTTP模块是实现负载均衡功能的核心模块之一。该模块可以根据配置文件中的负载均衡算法选择最优的后端服务器,并根据需要生成唯一的标识符插入到请求中。
除了HTTP模块,Nginx还支持其他负载均衡算法,如轮询、最少连接等。这些算法可以通过配置文件中的负载均衡块进行配置。例如,以下配置指定了轮询算法作为负载均衡算法:
upstream backend {server backend1.example.com;server backend2.example.com;server backend3.example.com;
}server {location / {proxy_pass http://backend;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;}
}
在上述配置中,"backend"是后端服务器组的名称,"backend1.example.com"、"backend2.example.com"和"backend3.example.com"是后端服务器的地址。当有请求到达时,Nginx将根据轮询算法依次将请求转发给不同的后端服务器。
总之,Nginx实现负载均衡的工作原理是将客户端的请求根据负载均衡算法分配给后端服务器进行处理,从而实现横向扩展和负载分担。底层原理则是基于事件驱动和异步非阻塞IO模型,实现了高效的网络通信和处理。
nginx负载均衡--实现思路
使用Nginx实现负载均衡的具体步骤如下:
- 准备两台或以上Tomcat服务器,确保端口不同,例如一台端口为8080,另一台端口为8081。
- 在每台Tomcat的webapps目录下创建一个名为test的文件夹,并在该文件夹中创建一个名为a.html的页面。
- 修改Nginx的配置文件nginx.conf,添加负载均衡配置。在http块之后添加server块,配置8080和8081两台Tomcat服务器的代理。
server {listen 80;server_name example.com;location / {proxy_pass http://192.168.200.130:8080/;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;}
}server {listen 81;server_name example.com;location / {proxy_pass http://192.168.200.130:8081/;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;}
}
在上述配置中,Nginx监听80和81端口,将请求分别代理到192.168.200.130:8080和192.168.200.130:8081。 4. 保存配置文件,关闭Nginx,然后重新启动Nginx。 5. 在浏览器中输入example.com:80或example.com:81,即可访问不同的Tomcat服务器。
以上是使用Nginx实现负载均衡的基本步骤。根据实际情况,可能还需要进行其他配置,例如健康检查、SSL配置等。
nginx虚拟主机--工作原理
Nginx实现虚拟主机的工作原理主要是基于多域名解析和反向代理。底层原理涉及到网络协议和Nginx的架构。
工作原理:
- 当一个客户端向Nginx代理服务器发送请求时,Nginx会根据请求的域名进行解析,确定请求的目标虚拟主机。
- Nginx根据解析到的域名,找到相应的虚拟主机配置,该配置指定了后端服务器和端口号。
- Nginx将请求转发到后端服务器,并将请求数据传递给后端服务器进行处理。
- 后端服务器处理请求并返回响应数据给Nginx。
- Nginx将接收到的响应数据缓存起来,并根据虚拟主机配置中的规则对响应数据进行一些额外的处理,如修改响应头部信息、缓存响应等。
- Nginx将处理后的响应返回给客户端。
底层原理:
- Nginx是一个基于事件驱动的高性能网络服务器,其架构适合处理大量并发请求。
- Nginx使用高效的网络协议,如TCP和HTTP,实现高性能的网络通信。
- Nginx采用了多进程或多线程的方式实现并发处理,充分利用系统资源。
- Nginx的模块化设计使其可以灵活地扩展和定制,支持多种功能和特性。
- Nginx还具有高效的负载均衡功能,可以将请求分发到不同的后端服务器进行处理。
总之,Nginx实现虚拟主机的工作原理是通过多域名解析和反向代理实现不同域名的请求转发和处理,底层原理涉及网络协议和Nginx的架构设计
nginx虚拟主机--实现思路
使用Nginx实现虚拟主机的具体步骤如下:
- 找到并打开Nginx的配置文件,通常位于/etc/nginx/nginx.conf或/etc/nginx/conf.d/default.conf。
- 在http标签块内添加一个完整的server标签段,该标签段用于配置虚拟主机。例如:
server {listen 80;server_name example.com;location / {root website_root;index index.html;}
}
在上述配置中,server_name指定了域名example.com,listen指定了监听的端口号80,location指定了网站根目录和默认首页文件。 3. 更改server_name和对应的网页根目录。如果需要其他参数,可以增加或修改。 4. 创建与server_name对应的根目录,并建立测试文件(如果没有index首页,访问会出现403错误)。 5. 检查Nginx配置文件语法,平滑重启Nginx服务,快速检查启动结果。可以使用以下命令:
nginx -t
nginx -s reload
- 在客户端对server_name处配置的域名做host解析或DNS配置,并通过ping命令检查连接是否成功。
- 在浏览器输入地址访问,或者在Linux客户端做host解析,使用wget或curl接地址访问。
补充:
虚拟主机是一种在云端的共享主机服务,它允许用户使用互联网创建和管理自己的网站。虚拟主机具有多种用途,包括但不限于:
- 个人或小型企业网站:虚拟主机可以作为个人或小型企业的网站平台。通过虚拟主机,用户可以轻松地发布自己的网站,并管理网站的内容。
- 电子商务平台:虚拟主机可以作为电子商务平台的托管服务。使用虚拟主机,商家可以在网上销售产品或服务,并使用各种在线支付选项来处理交易。
- 博客平台:虚拟主机可以作为博客平台的托管服务。用户可以在虚拟主机上创建和管理自己的博客,并使用各种主题和插件来增强博客的功能和外观。
- 应用程序平台:虚拟主机可以作为应用程序的托管平台。用户可以将自己的应用程序上传到虚拟主机上,并使用各种编程语言和框架来开发和管理应用程序。
- 数据共享和存储:虚拟主机可以提供数据共享和存储服务。用户可以在虚拟主机上共享和下载数据,存储文件和图片,以及备份重要数据。
- 安全性提高:虚拟主机可以提高网站的安全性。由于虚拟主机是由专业的托管服务提供商提供的,因此它们可以提供更高级别的安全保护,包括防病毒和防黑客攻击等。
总之,虚拟主机是一种方便、灵活和经济的托管服务,适用于各种不同的网站和应用场景。
nginx的HTTPS代理--工作原理
使用Nginx作为HTTPS代理的原理和底层原理可以概括如下:
工作原理:
- 当客户端向Nginx代理服务器发送HTTPS请求时,Nginx会接收到该请求。
- Nginx通过配置文件中的HTTPS代理规则,将请求转发到后端服务器进行处理。
- 后端服务器处理请求并返回响应数据给Nginx。
- Nginx将接收到的响应数据缓存起来,并根据配置文件中的规则对响应数据进行一些额外的处理,如修改响应头部信息、缓存响应等。
- Nginx将处理后的响应返回给客户端,并将响应数据存储在缓存中,以供后续请求使用。
底层原理:
- Nginx是一个高性能的网络服务器,具有事件驱动的架构,可以高效地处理大量并发请求。
- Nginx支持HTTP和HTTPS协议,能够实现高性能的HTTPS代理。
- Nginx的SSL模块提供了SSL加密功能,可以确保数据传输的安全性。
- Nginx的负载均衡功能可以将请求分发到不同的后端服务器进行处理,实现负载均衡和高可用性。
- Nginx的模块化设计使其可以灵活地扩展和定制,支持多种功能和特性。
总之,使用Nginx作为HTTPS代理可以确保数据传输的安全性,并实现高性能的代理服务。底层原理包括Nginx的事件驱动架构、SSL模块、负载均衡和模块化设计等特点。
nginx实现代理HTTPS--实现思路
要使用Nginx完成HTTPS的代理,需要按照以下步骤进行操作:
- 获取SSL证书:要实现HTTPS代理,需要先获取SSL证书。可以通过购买或申请免费证书来获取。
- 配置Nginx:打开Nginx的配置文件,通常位于/etc/nginx/nginx.conf或/etc/nginx/conf.d/default.conf。在http标签块内添加一个完整的server标签段,该标签段用于配置虚拟主机和HTTPS代理。
例如,以下是一个基本的Nginx配置文件,用于配置HTTPS代理:
server {listen 443 ssl;server_name example.com;ssl_certificate /path/to/ssl_certificate.crt;ssl_certificate_key /path/to/private_key.key;location / {proxy_pass http://backend_server;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;}
}
在上述配置中,listen指定了监听的端口号为443(HTTPS默认端口),ssl指定了使用SSL加密。server_name指定了域名example.com。ssl_certificate和ssl_certificate_key指定了SSL证书和私钥的路径。location指定了将请求代理到后端服务器http://backend_server,并设置了一些请求头信息。
- 启动Nginx:保存配置文件后,使用以下命令启动Nginx:
nginx -s reload
这将重新加载配置文件并使Nginx生效。
- 配置后端服务器:确保后端服务器(在上述配置中的backend_server)已经正确配置并运行。后端服务器可以是任何能够处理HTTP请求的服务器,如Apache、Nginx、Node.js等。
- 测试HTTPS代理:在客户端使用浏览器或其他工具访问https://example.com,应该能够通过HTTPS代理访问到后端服务器的网页内容。
总之,要实现Nginx的HTTPS代理,需要获取SSL证书、配置Nginx的虚拟主机和HTTPS代理规则、启动Nginx并配置后端服务器。这样,客户端就可以通过HTTPS代理访问到后端服务器的网页内容了。
补充:
还可以使用nginx反向代理websocket协议,客户端服务端等。
相关文章:
![](https://www.ngui.cc/images/no-images.jpg)
nginx--技术文档--架构体系--底层核心-原理
Nginx的架构体系可以概括为“一个核心、两个模型。” “一个核心”指Nginx的核心功能,即HTTP请求处理。Nginx作为一个高性能的Web服务器,其核心功能是处理HTTP请求,包括接收请求、解析请求、处理请求和返回响应等。 “两个模型”指Nginx的多…...
![](https://img-blog.csdnimg.cn/ab0cb3e0a6a64c878688b9c6e4719d2b.jpeg)
Java23种设计模式之【单例模式】
目录 一.单例模式的起源,和应用场景 1.单例模式的前世今生! 2.什么是单例模式? 2.1使用单例模式的注意事项 2.2如何理解单例模式? 2.3单例模式的优势以及不足! 2.4使用场景 二.实现 1.实现思路 1.1创建一个 S…...
![](https://www.ngui.cc/images/no-images.jpg)
SQLserver基础入门理论(超基础)二
♥️作者:小刘在C站 ♥️个人主页: 小刘主页 ♥️努力不一定有回报,但一定会有收获加油!一起努力,共赴美好人生! ♥️学习两年总结出的运维经验,以及思科模拟器全套网络实验教程。专栏…...
![](https://img-blog.csdnimg.cn/img_convert/064ed802e4a0d6a325b7103718a16ed7.png)
macbookpro怎么删除软件没有鼠标
macbookpro怎么删除软件没有鼠标,macbookpro触摸板可以替代鼠标进行操作。左右键功能与鼠标相同,可用于执行删除操作。此外,还可以利用键盘上的Delete键来删除选中的文件。 删除软件方法 方法1、打开应用程序,键盘按住control,加点…...
![](https://img-blog.csdnimg.cn/img_convert/58a595eb4ee8e106b771f03638dd3683.png)
华为数通方向HCIP-DataCom H12-821题库(单选题:241-260)
第241题 LS Request报文不包括以下哪一字段? A、通告路由器(Advertising Router) B、链路状态 ID (Link Srate ID) C、数据库描述序列号(Database Dascription Sequence lumber) D、链路状态类型 Link state type) 答案:C 解析: LS Request 报文中包括以下字段…...
![](https://img-blog.csdnimg.cn/img_convert/3eb8de9906a8de39ef3d2a2674515470.jpeg)
PHP8内置函数中的变量函数-PHP8知识详解
在php8中,与变量相关的内置函数比较多,本文说一些比较重要的、常见的内置函数。今日着重讲解了5个,分别是:检测变量是否为空的函数empty()、判断变量是否定义过的函数isset()、销毁指定的变量的函数unset()、获取变量的类型的函数…...
![](https://www.ngui.cc/images/no-images.jpg)
9月3日,每日信息差
第一、中国中铁与广州市城中村改造做地主体签署战略合作框架协议。根据协议,双方将积极响应广州市统筹做地推进高质量发展工作精神,充分发挥双方优势资源,共同加大在物业复建安置、基础设施建设、综合开发投资、城中村改造(微改造…...
![](https://img-blog.csdnimg.cn/img_convert/a01f8fbefafcc38c91098fdf278d8f6c.png)
2023年了,java后端还有未来吗?
前言 Java当下确实是比较的内卷,但关键在于个人,可以看看不同地方(这里主要举例北上广深一线城市)对于Java开发工程师这个职位的具体要求: 在以下北上广深这些一线大城市的面试招聘当中不难看出,凡是工资…...
![](https://img-blog.csdnimg.cn/3ff9738108724b5ca9fc319a5deadcb6.png)
使用cmake,将github上的某一个库进行集成到vs2022上
可以参考如下链接的内容: (还未完成,将在后序补充) 1.首先使用cmake,得到对应库的lib,include,bin文件夹 可以参考 https://www.youtube.com/watch?vu5-Df1YlxCI 2.现在我用cmake对这个第三方库进行编译,生成了三个文件夹:一个放的是lib文件(lib文件…...
![](https://img-blog.csdnimg.cn/img_convert/0a61ceaf8a73e8b227baf511850664d6.png)
第二张微服务的调用与注册
文章目录 工程导入利用RestTemplate调用服务需求创建RestTemplate的实例到Spring容器使用RestTemplate发送请求消费者和提供者 Eureka注册中心服务远程调用会出现的问题Eureka的结构和作用Eureka的配置过程搭建注册中心服务注册服务发现 Ribbon负载均衡负载均衡原理源码跟踪总结…...
![](https://img-blog.csdnimg.cn/d0ede0ca8ea64325a8c3985237dbbdf8.png)
iWatch框架设计
iWatch框架设计 一、项目框架结构设计 1、项目文件介绍 OverSeaProject:是IOS相关文件文件内容iWatchApp和iWatch Extension:是之前使用xcode14之前的xcode创建的360 app的Watch App,产生的文件结构,包含一个app和Extension的ta…...
![](https://img-blog.csdnimg.cn/e30b554621d2456fb1dec881260f3124.png)
【python】读取.dat格式文件
import binascii# 打开二进制文件以只读二进制模式 with open(EXCEL/文件.dat, rb) as file:binary_data file.read()print(binary_data)# 将二进制数据转换为十六进制字符串 hex_data binascii.hexlify(binary_data).decode(utf-8) # binary_data 现在包含了文件的二进制内容…...
![](https://www.ngui.cc/images/no-images.jpg)
机器学习课后习题 --- 朴素贝叶斯
(一)单选题 1.假设会开车的本科生比例是15%,会开车的研究生比例是23%。若在某大学研究生占学生比例是20%,则会开车的学生是研究生的概率是多少? A:80%B:16.6% C:23% D:15% 2.下列关于朴素贝叶斯的特点说法错误的是…...
![](https://img-blog.csdnimg.cn/4dbc0ed65cf540cda86dac1901cd91e4.png)
【设备树笔记整理7】实践操作
1 使用设备树给DM9000网卡_触摸屏指定中断 1.1 修改方法 根据设备节点的compatible属性,在驱动程序中构造/注册 platform_driver,在 platform_driver 的 probe 函数中获得中断资源。 1.2 实验方法 以下是修改好的代码:第6课第1节_网卡_触摸…...
![](https://img-blog.csdnimg.cn/img_convert/42dfddb0e9471e8e94e0469225a3d625.png)
使用VisualStudio制作上位机(六)
文章目录 使用VisualStudio制作上位机(六)第五部分:应用程序打包第一步:勾选为Release模式第二步:生成解决方案第三步:将我们额外添加的文件放入到Release这个文件夹里 使用VisualStudio制作上位机…...
![](https://img-blog.csdnimg.cn/c509ce863fd14afb8e8fd0115abefebc.gif)
包管理工具--》npm的配置及使用(一)
目录 🌟概念 🌟背景 🌟前端包管理器 🌟包的安装 本地安装 全局安装 🌟包配置 配置文件 保存依赖关系 🌟包的使用 🌟写在最后 🌟概念 模块(module)…...
![](https://img-blog.csdnimg.cn/img_convert/167f49b5998efbbb1a118b6048f82a78.png)
期货基础知识
一、期货是什么? 期货是与现货相对应,并由现货衍生而来。期货通常指期货合约,期货与现货完全不同,现货是实实在在可以交易的货(商品),期货主要不是货,而是以某种大众产品如棉花、大…...
![](https://img-blog.csdnimg.cn/e8fd4bc1731843c1ac0977542eefc031.png)
NC后端扩展开发
前言 在日常的工作中,会遇到各种各样的需要进行扩展开发的需求,可以使用系统预留的扩展开发机制来实现,避免修改源码。因NC产品已迭代至BIP版本,所以前端扩展方式就再进行不赘述了,本文主要介绍后端扩展开发方式&…...
![](https://www.ngui.cc/images/no-images.jpg)
nginx vue2+webpack 和 vue3+vite 配置二级目录访问
我们开发中会遇到这样的需求,让我们用服务器nginx部署一个用域名的二级目录来访问项目 https:xxx/二级目录/来放访问项目 目录 思路 1、nginx配置(vue2 和 vue3配置的nginx相同) 2、vue2webpack的配置 (1࿰…...
![](https://img-blog.csdnimg.cn/img_convert/a87255810161428a9b2ee44127bcaee8.png#pic_center)
无需租云服务器,Linux本地搭建web服务,并内网穿透发布公网访问
文章目录 前言1. 本地搭建web站点2. 测试局域网访问3. 公开本地web网站3.1 安装cpolar内网穿透3.2 创建http隧道,指向本地80端口3.3 配置后台服务 4. 配置固定二级子域名5. 测试使用固定二级子域名访问本地web站点 前言 在web项目中,部署的web站点需要被外部访问,则…...
![](https://img-blog.csdnimg.cn/img_convert/9fa3e71b3c4871f1652a850f43cc736a.gif#pic_center)
算法leetcode|76. 最小覆盖子串(rust重拳出击)
文章目录 76. 最小覆盖子串:样例 1:样例 2:样例 3:提示:进阶: 分析:在这里插入图片描述 题解:rust:go:c:python:java: 76.…...
![](https://img-blog.csdnimg.cn/5807c0dac8c0400eafd3d854ae790abe.png)
如何让你的jupyter notebook 排版得像Word(Markdown和网页文件写法)
案例背景 很多时候我们在jupyter notebook里面的写代码,画图,但是文字分析什么的写在里面纯文本不好看,需要进行排版,那么就得用markdown的写法,如何还想居中或者更花里胡哨的字体,那就得要网页文件的一些…...
![](https://img-blog.csdnimg.cn/d5212eb5409541b19989134f01327ab4.png)
AndroidTV端:酒店扫码认证投屏DLNA
被老板叼了几次了,最近实在忍不了,准备离职; 但是担心离职后长时间没有办法找到工作 就想贡献一套平时琢磨出来的程序,请各位有能力的话带我熬过这凛冽的寒冬。 目前写出来的,有三个端:安卓TV端…...
![](https://img-blog.csdnimg.cn/f4cc7c5ae4c9436aaf560ad60abf43bd.png)
基于PyTorch的交通标志目标检测系统
一、开发环境 Windows 10PyCharm 2021.3.2Python 3.7PyTorch 1.7.0 二、制作交通标志数据集,如下图 三、配置好数据集的地址,然后开始训练 python train.py --data traffic_data.yaml --cfg traffic_yolov5s.yaml --weights pretrained/yolov5s.pt --e…...
![](https://www.ngui.cc/images/no-images.jpg)
feign调用失败 feign.RetryableException: xxx-service executing GET http://xxx/test
一。 问题引入 升级springcloud的版本后 突然发现 以前正常的feign调用也报错了 升级后的各组件版本如下 spring cloud 2021.0.5 spring cloud alibaba 2021.0.5.0 spring boot 2.6.13 错误日志如下 feign.RetryableException: xxx-service executing GET http://xxx-servic…...
![](https://www.ngui.cc/images/no-images.jpg)
mysql 用户管理
目录 用户 创建用户 删除用户 修改密码 权限管理 赋权 查看权限 插销权限 总结 用户 mysql 的用户都存在于系统数据库 mysql 的user 表中 mysql> show tables; --------------------------- | Tables_in_mysql | --------------------------- | column…...
![](https://img-blog.csdnimg.cn/1dfe90b1a10f452e9421f9e4ad6bf09e.png#pic_center)
pyinstaller打包exe运行闪退
这里写自定义目录标题 前言问题描述解决过程 前言 闪退原因可能有很多,这里记录下我遇到的问题,简单来说是dll调用错误导致的闪退,因为我的python用的是32位的,但是pyinstaller却是64位的,属于用conda的时候没注意。 …...
![](https://img-blog.csdnimg.cn/5b631699322c43eaa4c120774a697693.png)
ARM 汇编基础知识
1.为什么学习汇编? 我们在进行嵌入式 Linux 开发的时候是绝对要掌握基本的 ARM 汇编,因为 Cortex-A 芯片一 上电 SP 指针还没初始化, C 环境还没准备好,所以肯定不能运行 C 代码,必须先用汇编语言设置好 C 环境…...
![](https://img-blog.csdnimg.cn/c5afc7dede854bbeb69c062e00467b28.png#pic_center)
CRM 自动化如何改善销售和客户服务?
许多 B2B 和 B2C 公司都使用 CRM 系统来组织业务流程,使复杂的任务更容易完成。企业可以使用 CRM 自动化来自动化工作流程,让团队有更多的时间来执行高价值的任务,而不是陷于一堆琐碎事情中。 什么是CRM自动化? CRM 自动化是指 C…...
![](https://img-blog.csdnimg.cn/c6b619379edd49eb8d80bd38a84c545b.webp)
Bean 的六种作用域
目录 一、作用域是什么? 1、singleton(单例作用域) 2、prototype(原型作用域) 3、request(请求作用域) 4、session(回话作用域) 5、application(全局作用域&a…...
![](/images/no-images.jpg)
有一个做5s壁纸的网站/手机app免费下载
这是一篇很牛逼的技术文章,讲述如何对 NoSQL 的数据进行建模。 英文原文:http://highlyscalable.wordpress.com/2012/03/01/nosql-data-modeling-techniques/ NoSQL databases are often compared by various non-functional criteria, such as scalabil…...
网页设计 做网站的代码/seo技术快速网站排名
用python实现的抓取腾讯视频所有电影的爬虫 1. # -*- coding: utf-8 -*-2. import re3. import urllib24. from bs4 import BeautifulSoup5. import string, time6. import pymongo8. NUM 0 #全局变量,电影数量9. m_type u #全局变量,电影类型10. m_site uqq #全局…...
![](/images/no-images.jpg)
网页制作公司企业愿景/北京网站优化页面
概述在网络编程中,有时我们需要判断两台机器之间的连通性,或者说是一台机器到另一台机器的网络可达性。在系统层面的测试中,我们常常用 Ping 命令来做验证。尽管 Java 提供了比较丰富的网络编程类库(包括在应用层的基于 URL 的网络…...
![](https://img-blog.csdnimg.cn/img_convert/9e68fd2640766d752550dce6c636fd13.png)
做一元购网站 要多少钱/百度双十一活动
mysql 安装双击d:\websoft\mysql-essential-5.1.63-win32.msi 就开始安装了 看图操作出现上面的界面,不要点cancel 那是取消, 等等选择“custom”然后点“next” 出现下面的界面这个是选择mysql 安装的位置,默认在c盘,我们点“cha…...
![](/images/no-images.jpg)
手机网站建设是什么/百度一下你就知道手机版官网
本文主要总结线程共享数据的相关知识,主要包括两方面:一是某个线程内如何共享数据,保证各个线程的数据不交叉;一是多个线程间如何共享数据,保证数据的一致性。线程范围内共享数据自己实现的话,是定义一个Map,线程为键&…...
![](/images/no-images.jpg)
wordpress无限加载插件/百度外包公司有哪些
最近在写php程序和sql语句时用到了这种写法: selecta,b,c fromtable wherea1AND b2OR c3 <?php fn(1,2,3); 觉得这样写以后方便改东西。 但想想还是没php的数组来得方便。php数组可以写成这样: <?php$arr array(1,2,3, ); 这个逗号,golang还要强…...