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

Nginx实现反向代理、负载均衡、动静分离

1. 什么是Nginx的反向代理?

Nginx的反向代理是指Nginx作为服务器的前端,接收客户端的请求,然后将请求转发给后端的真实服务器,并将真实服务器的响应返回给客户端。这种代理方式使得客户端并不知道真实服务器的存在,它只与Nginx进行交互。

2. Nginx如何实现负载均衡?

Nginx通过upstream模块实现负载均衡。可以配置多个后端服务器地址,Nginx会根据配置的负载均衡算法(如轮询、权重、最少连接等)将请求分发到这些后端服务器上。

3. Nginx的负载均衡有哪些常见的算法?

Nginx的负载均衡常见的算法包括:

  • 轮询(round-robin):按照后端服务器的顺序依次分发请求。
  • 权重(weight):根据后端服务器的处理能力,给不同的服务器分配不同的权重,权重越高,接收的请求越多。
  • 最少连接(least-connected):将请求分发到当前连接数最少的服务器上。
  • IP哈希(ip_hash):根据客户端的IP地址的哈希值来分配请求,确保来自同一IP的请求被发送到同一台服务器上。

4. 什么是Nginx的动静分离?

Nginx的动静分离是指将动态请求和静态请求分开处理。静态请求(如图片、CSS、JS等)直接由Nginx处理并返回,而动态请求(如PHP、Java等)则转发给后端的应用服务器处理。这样可以提高网站的响应速度和稳定性。

5. 如何实现Nginx的动静分离?

实现Nginx的动静分离通常通过location指令来配置。可以定义不同的location规则来匹配静态文件和动态请求,然后分别为它们指定不同的处理方式。例如,对于静态文件,可以直接指定root或alias目录;对于动态请求,则可以使用proxy_pass指令转发给后端服务器。

6. Nginx在处理大量并发连接时有哪些优化手段?

Nginx在处理大量并发连接时,可以采用以下优化手段:

  • 调整worker_processes数量:根据服务器CPU核心数调整worker进程数,充分利用多核CPU的性能。
  • 调整worker_connections数量:增加每个worker进程可以处理的连接数,提高并发处理能力。
  • 开启keepalive:启用长连接,减少频繁建立连接的开销。
  • 使用gzip压缩:对传输的数据进行压缩,减少网络带宽的占用。
  • 缓存静态资源:使用Nginx的缓存功能,缓存静态资源,减少对后端服务器的请求。

7. 如何监控Nginx的性能和状态?

可以使用Nginx自带的ngx_http_stub_status模块来监控Nginx的性能和状态。该模块提供了访问状态统计信息,包括当前活动的连接数、已处理的请求数等。此外,还可以使用第三方工具如Nginx Plus或Prometheus等来进行更详细的监控和告警。

8. 如何配置Nginx作为反向代理时处理HTTPS请求?

要配置Nginx作为反向代理来处理HTTPS请求,你需要进行以下步骤:

  • 生成或获取SSL证书和私钥。
  • 在Nginx配置文件中,指定HTTPS的监听端口(通常是443)。
  • 配置SSL相关的指令,如ssl_certificatessl_certificate_key,指向你的证书和私钥文件。
  • 配置location块来指定代理的目标服务器地址和端口。
  • 如果需要,可以配置SSL会话缓存、协议版本和加密算法等高级选项。

9. 在Nginx中如何配置HTTP到HTTPS的强制重定向?

在Nginx中,你可以使用rewrite指令来实现HTTP到HTTPS的强制重定向。以下是一个示例配置:

server {  listen 80;  server_name example.com;  return 301 https://$host$request_uri;  
}  server {  listen 443 ssl;  server_name example.com;  # SSL证书和私钥配置...  # 其他配置...  
}

在上面的配置中,第一个server块监听80端口(HTTP),并使用return指令将所有请求重定向到HTTPS。第二个server块则处理HTTPS请求。

10. 如何配置Nginx的缓存来提高网站性能?

Nginx提供了强大的缓存机制来提高网站性能。你可以使用proxy_cache指令和相关参数来配置缓存。以下是一个简单的缓存配置示例:

http {  proxy_cache_path /path/to/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off;  server {  listen 80;  server_name example.com;  location / {  proxy_pass http://backend_server;  proxy_cache my_cache;  proxy_cache_valid 200 304 12h;  proxy_cache_key $host$uri$is_args$args;  add_header X-Cache-Status $upstream_cache_status;  }  }  
}

在上面的配置中,proxy_cache_path指令定义了缓存的存储路径、分区级别、命名空间大小、最大缓存大小、缓存项的非活动时间等参数。proxy_cache指令在location块中启用缓存,proxy_cache_valid指定不同响应代码的缓存时间。proxy_cache_key用于定义缓存键的生成方式,而add_header指令用于在响应中添加一个头部,显示缓存的状态。

11. 如何优雅地重新加载Nginx配置而不断开现有连接?

你可以使用Nginx的-s reload选项来优雅地重新加载配置,而不会断开现有连接。执行以下命令:

sudo nginx -s reload

这会导致Nginx重新读取配置文件并应用新的配置,但不会停止处理现有的连接。这对于在生产环境中更新配置非常有用,因为它可以避免服务中断。

12. 在使用Nginx作为负载均衡器时,如何确保后端服务器的健康状态?

Nginx提供了健康检查功能,可以监控后端服务器的健康状态。你可以使用health_check指令(在Nginx Plus版本中可用)或者第三方模块如ngx_http_healthcheck_module来实现。这些模块允许你定义健康检查的参数,如检查间隔、超时时间、成功和失败的阈值等。如果后端服务器不健康,Nginx可以将其从负载均衡池中移除,确保只有健康的服务器处理请求。

13. 如何配置Nginx的访问控制,限制某些IP或用户代理的访问?

你可以使用Nginx的allowdeny指令来限制特定IP地址或IP地址范围的访问。同时,使用if指令结合$http_user_agent变量可以限制特定用户代理的访问。以下是一个简单的示例:

location / {  deny 192.168.1.1; # 禁止特定IP访问  allow 192.168.1.0/24; # 允许192.168.1.0/24网段的IP访问  allow 10.0.0.0/8; # 允许10.0.0.0/8网段的IP
访问
deny all; # 拒绝其他所有IP访问if ($http_user_agent ~* "badbot") {  return 403; # 如果用户代理包含"badbot",则返回403 Forbidden  
}  # 其他配置...
}

在上面的配置中,我们首先使用`deny`和`allow`指令定义了IP地址的访问控制规则。`deny all;`语句确保了只有明确允许的IP地址才能访问该位置。接下来,我们使用`if`指令和正则表达式来检查用户代理是否包含"badbot"字符串,如果是,则返回403 Forbidden响应。

14. Nginx如何处理静态文件的高效传输?

Nginx对于静态文件的高效传输提供了多种优化手段。以下是一些常用的配置和策略:

开启`sendfile`:在Nginx配置中启用`sendfile on;`,这允许Nginx使用操作系统的sendfile机制来高效地发送文件,减少了数据的拷贝次数。  
- 使用`tcp_nopush`和`tcp_nodelay`:** 根据需要开启或关闭这两个选项。`tcp_nopush`可以延迟发送小数据包,减少网络包的数量;而`tcp_nodelay`则禁用Nagle算法,适用于小数据包的低延迟传输。  
- 调整`keepalive_timeout`:** 适当增加长连接的超时时间,可以减少频繁建立连接的开销。  
- 使用HTTP缓存头:** 通过设置`Expires`和`Cache-Control`等HTTP缓存头,告诉浏览器缓存静态文件,减少不必要的请求。  
- 启用gzip压缩:** 对于文本文件,如CSS、JavaScript等,启用gzip压缩可以大大减少传输的数据量。  

15. Nginx如何处理大量的小文件请求?

当Nginx需要处理大量的小文件请求时,可以考虑以下策略来提高性能:

合并小文件: 如果可能的话,将多个小文件合并成一个较大的文件,并通过URL重写或应用程序逻辑来提供适当的文件片段。  
- 使用磁盘缓存:利用Nginx的磁盘缓存功能,将经常访问的小文件缓存到磁盘上,以减少对后端存储的访问。  
- 调整文件系统的I/O性能:使用高性能的文件系统,如XFS或ext4,并调整其参数以优化小文件的读写性能。  
- 优化Nginx的worker进程数:根据服务器的CPU核心数和负载情况,适当调整worker进程的数量,以确保有足够的处理能力来处理大量的请求。  

16. 如何配置Nginx作为WebDAV服务器?

要将Nginx配置为WebDAV服务器,你需要安装并启用ngx_http_dav_module模块。以下是配置Nginx作为WebDAV服务器的基本步骤:

首先,确保你的Nginx已经包含了ngx_http_dav_module模块。如果没有,你可能需要重新编译Nginx或安装包含该模块的Nginx版本。

然后,在Nginx配置文件中,使用dav_methodsdav_ext_methods指令来启用WebDAV请求方法。同时,确保指定了正确的根目录,并且启用了autoindex来显示目录列表。

以下是一个简单的WebDAV服务器配置示例:

server {  listen 80;  server_name webdav.example.com;  root /path/to/webdav/root;  autoindex on;  dav_methods PUT DELETE MKCOL COPY MOVE;  dav_ext_methods PROPFIND OPTIONS;  create_full_put_path on;  client_body_temp_path /tmp/nginx/client_body;  location / {  dav_access user:rw group:rw all:r; # 设置访问权限  }  
}

在这个配置中,dav_methodsdav_ext_methods指令启用了WebDAV所需的HTTP方法。create_full_put_path on;允许客户端使用PUT方法创建完整的文件路径。client_body_temp_path指定了临时文件的存储位置。在location块中,dav_access指令设置了WebDAV的访问权限。

请注意,这只是一个基本的配置示例。在实际应用中,你可能还需要考虑其他安全性、性能优化和错误处理等方面的配置。

17. 如何使用Nginx和Lua进行动态内容处理?

Nginx与Lua的集成允许你使用Lua脚本来处理动态内容,扩展Nginx的功能。这通常通过OpenResty项目实现,OpenResty是一个基于Nginx与LuaJIT的Web平台。

要在Nginx中使用Lua进行动态内容处理,你需要安装OpenResty,它包含了ngx_http_lua_module。安装完成后,你可以在Nginx配置文件中使用content_by_lua_blocklocation块中的其他Lua指令来嵌入Lua代码。

以下是一个简单的示例,展示了如何使用Lua在Nginx中处理请求:

http {  lua_package_path '/path/to/lua/?.lua;;'; # Lua模块搜索路径  server {  listen 80;  server_name example.com;  location /hello {  content_by_lua_block {  ngx.say("Hello, World!")  }  }  }  
}

在上面的配置中,当访问/hello路径时,Nginx会执行嵌入的Lua代码,并通过ngx.say函数发送"Hello, World!"作为响应。

除了content_by_lua_block,你还可以使用access_by_lua_block来处理访问控制逻辑,或使用header_filter_by_lua_block来修改HTTP响应头。OpenResty还提供了许多API和库,用于与Nginx交互、处理请求和生成响应。

18. 如何使用Nginx的变量进行灵活的配置?

Nginx提供了大量的内置变量,你可以在配置文件中使用这些变量来实现更灵活的配置。这些变量可以包含请求相关的信息、响应的状态码、客户端的IP地址等。

以下是一些使用Nginx变量的示例:

  • 使用$host变量设置Server响应头:

server {  listen 80;  server_name example.com;  add_header Server $host;  # 其他配置...  
}
  • 根据客户端的IP地址限制访问:

location /restricted/ {  allow 192.168.1.0/24;  deny all;  if ($remote_addr !~ ^192\.168\.1\.) {  return 403;  }  # 其他配置...  
}
  • 根据请求的文件类型设置不同的缓存时间:

location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {  expires 1d;  access_log off;  add_header Cache-Control"public";
}location ~* .(pdf|doc|txt)$ {
expires 7d;
access_log off;
add_header Cache-Control "public";
}

在上面的示例中,`$host`变量用于设置`Server`响应头,`$remote_addr`变量用于检查客户端的IP地址,而正则表达式匹配则用于根据请求的文件类型设置不同的缓存时间。

除了内置变量,Nginx还允许你定义自己的变量,并在配置中使用它们。这可以通过`set`指令来实现:  

```nginx  
set $my_variable "some value";  location / {  if ($arg_param = $my_variable) {  # 执行某些操作...  }  
}

在这个例子中,我们定义了一个名为$my_variable的变量,并在location块中使用它来进行条件判断。

理解并熟练使用Nginx的变量可以使你的配置更加灵活和可维护。不过要注意,过度使用变量和复杂的条件逻辑可能会降低Nginx的性能,因此应谨慎使用。

19. 如何使用Nginx进行A/B测试?

Nginx本身并不直接提供A/B测试的功能,但你可以通过配置多个上游服务器或使用第三方模块来实现类似的功能。

一种常见的方法是使用map指令结合proxy_pass来实现基于请求特征的流量分配。例如,你可以根据用户IP地址的哈希值或请求头的某个值来决定将请求代理到哪个上游服务器。

以下是一个简单的示例,展示如何使用Nginx进行基于IP哈希的A/B测试:

http {  upstream backend_a {  server backend_a_ip:port;  }  upstream backend_b {  server backend_b_ip:port;  }  map $remote_addr $upstream {  default backend_a;  ~^(192\.168\.1\.\d+)$ backend_b;  }  server {  listen 80;  server_name example.com;  location / {  proxy_pass http://$upstream;  }  }  
}

在这个配置中,我们定义了两个上游服务器组backend_abackend_b。然后,我们使用map指令根据客户端IP地址($remote_addr)来决定使用哪个上游服务器。默认情况下,所有请求都会被代理到backend_a,但IP地址以192.168.1.开头的请求会被代理到backend_b

这种方法可以实现简单的A/B测试,但如果你需要更复杂的测试场景(如基于用户会话的测试、动态调整流量比例等),你可能需要考虑使用专门的A/B测试工具或服务。

20. 如何监控和调试Nginx的配置和性能?

监控和调试Nginx的配置和性能是确保Nginx高效稳定运行的关键步骤。以下是一些常用的方法和工具:

  • 使用nginx -t测试配置语法:
    在修改Nginx配置后,可以使用nginx -t命令来测试配置文件的语法是否正确,而无需重启Nginx服务。

  • 查看错误日志:
    Nginx的错误日志通常位于/var/log/nginx/error.log(具体位置可能因安装和配置而异)。通过查看错误日志,你可以找到配置错误、权限问题或其他运行时问题。

  • 使用nginx -s发送信号:
    你可以使用nginx -s命令发送信号给Nginx进程,如nginx -s reload来重新加载配置,nginx -s stop来优雅地停止Nginx服务。

  • 性能监控工具:

    • ngxtop: 一个实时的Nginx监控工具,可以显示请求统计、连接数、响应时间等信息。
    • Nginx Plus的状态模块: 如果你使用的是Nginx Plus版本,可以利用其内置的状态模块来获取更详细的性能数据。
    • 第三方监控解决方案: 如Prometheus、Grafana等,它们可以与Nginx结合使用,提供强大的监控和告警功能。
  • 调试工具:

    • strace 用于跟踪系统调用和信号,可以帮助你定位Nginx进程中的性能瓶颈或错误。
    • lsof 或 netstat 这些工具可以帮助你查看Nginx进程的文件描述符和网络连接情况,有助于诊断连接泄漏等问题。
  • 启用调试日志:
    在Nginx配置中,你可以通过调整日志级别来启用更详细的调试信息。但请注意,开启调试日志可能会产生大量的输出,对性能有一定影响,因此在生产环境中应谨慎使用。

  • 使用第三方模块增强监控能力:
    Nginx支持动态加载模块,你可以使用如ngx_http_stub_status_module这样的模块来获取Nginx的状态信息,包括当前连接数、请求总数等。此外,还有第三方模块如ngx_http_log_module可以提供更丰富的日志功能,帮助你更好地监控和调试Nginx。

  • 性能调优建议:

    • 优化Nginx的工作进程数(worker_processes),根据服务器核心数进行合理配置。
    • 调整事件处理模型(events块中的配置),如使用epollkqueue来提高性能。
    • 调整缓冲区大小(如client_body_buffer_sizeproxy_buffer_size等),以适应你的应用场景。
    • 启用压缩功能(如gzip),减少传输数据量,提高响应速度。。

相关文章:

Nginx实现反向代理、负载均衡、动静分离

1. 什么是Nginx的反向代理? Nginx的反向代理是指Nginx作为服务器的前端,接收客户端的请求,然后将请求转发给后端的真实服务器,并将真实服务器的响应返回给客户端。这种代理方式使得客户端并不知道真实服务器的存在,它…...

【Linux】网络基础(一)

文章目录 一、计算机网络背景1. 网络发展2. 认识“协议” 二、网络协议初识1. 协议分层2. OSI七层模型3. TCP/IP五层(或四层)模型 三、网络传输基本流程1. 同局域网的两台主机通信数据包封装和分用封装分用 2. 跨网络的两台主机通信 四、网络中的地址管理…...

前端小白学习Vue框架(二)

一.属性计算、属性监听、属性过滤 1.认识MVVM V (用户视图界面)通过VM (应用程序) 向Model(数据模型) 取值与赋值的过程! 数据双向绑定 视图改变更新数据,数据改变更新视图 2.属性计算 //在vue实例中通过computed去计算new …...

飞书api增加权限

1,进入飞书开发者后台:飞书开放平台 给应用增加权限 2,进入飞书管理后台 https://fw5slkpbyb3.feishu.cn/admin/appCenter/audit 审核最新发布的版本 如果还是不行,则需要修改数据权限,修改为全部成员可修改。 改完…...

CSS3 平面 2D 变换+CSS3 过渡

个人主页:学习前端的小z 个人专栏:HTML5和CSS3悦读 本专栏旨在分享记录每日学习的前端知识和学习笔记的归纳总结,欢迎大家在评论区交流讨论! 文章目录 ✍一、CSS3 平面 2D 变换💎1 坐标轴💎2 transform 语法…...

【Jenkins】Jenkins自动化工具介绍

目录 技术背景常规的手动打包步骤 Jenkins简介起源与发展Jenkins的核心价值1.自动化1.1代码构建1.2测试自动化1.3自动部署 2.持续集成与持续部署CI/CD的概念如何减少集成问题更快速地发布软件版本 Jenkins优势Jenkins的主要竞争对手Travis CI:CircleCI:GitLab CI: Jenkins与其他…...

课时93:流程控制_函数进阶_综合练习

1.1.3 综合练习 学习目标 这一节,我们从 案例解读、脚本实践、小结 三个方面来学习。 案例解读 案例需求 使用shell脚本绘制一个杨辉三角案例解读 1、每行数字左右对称,从1开始变大,然后变小为1。    2、第n行的数字个数为n个&#xf…...

oracle创建整个数据库的只读账户

在源用户readonly 下创建只读用户 reader readonly 的表空间为AA 一、创建只读用户 create user reader identified by 密码 default tablespace AA; 二、授权 grant connect to reader ; 三、获取原账号readonly 的查询权限 select grant select on ||owner||.||object…...

文件名乱码危机:数据恢复全攻略

在数字化时代的浪潮中,电脑文件成为我们日常生活和工作中不可或缺的一部分。然而,有时我们会突然遭遇一个令人头疼的问题:原本清晰易读的文件名突然变成了乱码。这些乱码文件名不仅让我们无法准确识别文件内容,更可能意味着数据丢…...

Unity Standalone File Browser,Unity打开文件选择器

Unity Standalone File Browser,Unity打开文件选择器 下载地址:GitHub链接: https://github.com/gkngkc/UnityStandaloneFileBrowser简单的示例代码 using SFB; using System; using System.IO; using UnityEngine; using UnityEngine.UI;…...

面向对象的架构三段式写一篇论文

在面向对象的软件架构中,系统设计通常遵循一种“三段式”方法论,以确保软件的可扩展性、可维护性和灵活性。这种方法论包括三个核心阶段:概念化、详细设计和实现。通过这三个阶段的逐步深入,开发团队可以有效地应对复杂系统的挑战…...

npm ERR! code CERT_HAS_EXPIREDnpm ERR! errno CERT_HAS_EXPIRED

解决npm ERR! code CERT_HAS_EXPIRED npm ERR! errno CERT_HAS_EXPIRED npm ERR! request to 分析过后这个问题是证书过期的意思 考虑到其他的原因 这里给出三个解决方案 一: 清除npm缓存 npm cache clean --force 取消ssl验证: npm config set strict-…...

pytorch-多分类实战之手写数字识别

目录 1. 网络设计2. 代码实现2.1 网络代码2.2 train 3. 完整代码 1. 网络设计 输入是手写数字图片28x28,输出是10个分类0~9,有两个隐藏层,如下图所示: 2. 代码实现 2.1 网络代码 第一层将784降维到200,第二次使用…...

httpsok-快速申请谷歌SSL免费证书

🔥httpsok-快速申请谷歌SSL免费证书 使用场景: 部署CDN证书、OSS云存储证书证书类型: 单域名 多域名 通配符域名 混合域名证书厂商: ZeroSSL Lets Encrypt Google证书加密类型: ECC、 RSA 一、证书管理 进入 证书管…...

LiveGBS流媒体平台GB/T28181功能-国标级联中如何自定义通道国标编号编辑通道编号保持唯一性

LiveGBS国标级联中如何自定义通道国标编号编辑通道编号保持唯一性 1、国标级联选择通道修改2、通道编辑修改3、分屏展示设备树修改3.1、编辑名称中修改 4、分屏展示分组修改4.1、编辑名称中修改4.2、选择通道中修改 5、搭建GB28181视频直播平台 1、国标级联选择通道修改 国标级…...

mysql 大表凌晨定时删除数据

有几张表数据量非常大,一次维护量有点大(一个月有500多万条数据,并且还在往上涨), 于是想了个定时删除数据,每天凌晨执行,这样每天删除数据量就小, 循环删除,每次删除5…...

ArcGIS和ArcGIS Pro快速加载ArcGIS历史影像World Imagery Wayback

ArcGIS在线历史影像网站 World Imagery Wayback(网址:https://livingatlas.arcgis.com/wayback/)提供了数期历史影像在线浏览服务,之前不少自媒体作者在文中宣称其能代表Google Earth历史影像。 1、一点对比 (1)同一级别下的版本覆盖面 以下述区域为例,自2014年2月20…...

数据仓库的—数据仓库的体系架构

数据仓库通常采用分层的体系架构设计,作为支撑企业决策分析需求的数据基础设施。典型的数据仓库体系架构由以下三个核心层次组成: 源数据层(Source Layer) 这是数据仓库的数据来源,包括组织内部的各种运营系统,如ERP、CRM、SCM等,以及外部数据源如互联网、社交媒体等。这些系…...

【C/C++基础知识】const 关键字

文章目录 Q&A and 前言const 修饰基本变量初始化const 对象仅在文件内有效 const 的引用应用 指针与 constconst 修饰类成员函数参考写在最后 Q&A and 前言 Q:简要说一说 C 中的 const 关键字,含义以及常见的使用位置 A:const 是 C…...

Docker之数据卷和Dockerfile

Docker之数据卷与Dockerfile的详细使用介绍如下: 一、Docker数据卷 数据卷(volume)是Docker中的一个重要概念,它允许你在容器和宿主机或容器之间共享文件系统。数据卷提供了持久性存储,即使在容器被删除后&#xff0…...

pull拉取最新代码

工作区、暂存区、版本库 工作区:就是你在电脑里能看到的目录。 暂存区:英文叫 stage 或 index。一般存放在 .git 目录下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。 …...

工控 modbusTCP 报文

Tx 发送报文:00 C9 00 00 00 06 01 03 00 00 00 02 Rx 接收报文:00 C9 00 00 00 07 01 03 04 01 4D 00 01 Tx 发送报文:00 C9 00 00 00 06 01 03 00 00 00 02 00 C9 事务处理标识符 2字节 00 00 协议标识符 2字节 固定 00 00 00 06 长度 2字节 表示之后的字节总数 (…...

在Ubuntu服务器上快速安装一个redis并提供远程服务

一、快速安装一个Redis 第一步:更新apt源 sudo apt update第二步:下载Redis sudo apt install redis第三步:查看Redis是否已自启动 systemctl status redis二、配置Redis提供远程服务 第一步:先确保6379端口正常开放 如果是…...

玩机进阶教程------手机定制机 定制系统 解除系统安装软件限制的一些步骤解析

定制机 在于各工作室与商家合作定制rom中有一些定制机。限制用户私自安装第三方软件。或者限制解锁 。无法如正常机登陆账号等等。定制机一般用于固定行业或者一些部门。专机专用。例如很多巴枪扫描机型等等。或者一些小牌机型。对于没有官方包的机型首先要导出各个分区来制作…...

Bilstm双向长短期神经网络多输入单输出回归分析

目录 背影 摘要 LSTM的基本定义 LSTM实现的步骤 BILSTM神经网络 Bilstm双向长短期神经网络多输入单输出回归分析 完整代码: Bilstm双向长短期神经网络多输入单输出回归分析.zip资源-CSDN文库 https://download.csdn.net/download/abc991835105/89087121 效果图 结果分析 展望 …...

ELK+Filebeat日志分析系统

一、ELK基本介绍: 1.ELK 简介: ELK平台是一套完整的日志集中处理解决方案(日志系统)。 将 ElasticSearch、Logstash 和 Kiabana 三个开源工具配合使用, 完成更强大的用户对日志的查询、排序、统计需求。 ELK --> ELFK --> ELFKMQ2.ELK组件介绍…...

flex吃干抹净

Flex 布局是什么? Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。 .box{display: flex;//行内元素也可以使用flex布局//display: inline-flex; }display: flex; 使元素呈现为块级元素,…...

【单片机毕业设计8-基于stm32c8t6的RFID校园门禁系统】

【单片机毕业设计8-基于stm32c8t6的RFID校园门禁系统】 前言一、功能介绍二、硬件部分三、软件部分总结 前言 🔥这里是小殷学长,单片机毕业设计篇8基于stm32的RFID校园门禁系统 🧿创作不易,拒绝白嫖可私 一、功能介绍 -----------…...

uni-app web端使用getUserMedia,摄像头拍照

<template><view><video id"video"></video></view> </template> 摄像头显示在video标签上 var opts {audio: false,video: true }navigator.mediaDevices.getUserMedia(opts).then((stream)> {video document.querySelec…...

2024-简单点-观察者模式

先看代码&#xff1a; # 导入未来模块以支持类型注解 from __future__ import annotations# 导入抽象基类模块和随机数生成器 from abc import ABC, abstractmethod from random import randrange# 导入列表类型注解 from typing import List# 定义观察者模式中的主体接口&…...

wordpress站点维护/网络推广是做什么工作的

线程池threadpool介绍 (Introduction) 随着芯片制造商致力于通过增加时钟速度来增加处理器内核&#xff0c;开发人员需要利用现代CPU的功能。 我们做到这一点的方法之一是在软件中实现并行算法。 One recent task I needed to perform at home was to find and document large …...

公众号开发者权限/seo系统

linux shell java lib(linux shell脚本加载java环境变量)用shell来启动java应用程序&#xff0c;只要遍历lib目录#!/bin/shPROJECT_HOME/home/admin/projectMAINCLASScom._8qiu.app.MainClassCLASS_PATH${PROJECT_HOME}/classes:$(echo ${PROJECT_HOME}/lib/*.jar|sed s/ /:/g)…...

做网站推广的话术/上海seo培训

12.1.委托概述12.1.2 委托的数据类型为了减少重复代码数量&#xff0c;可以将比较方法作为参数传递给 BubbleSort&#xff08;&#xff09;方法。此外&#xff0c;为了将方法作为参数传递&#xff0c;必须有一个能够标识方法的数据类型——也就是委托。这里的委托类型是 Compar…...

建筑bim工程网报入口/如何优化关键词排名快速首页

1.题目描述 题目来源&#xff1a;https://pintia.cn/problem-sets/14/problems/734 基础编程题目集 760 分 函数题共 13 小题&#xff0c;共计 185 分编程题共 38 小题&#xff0c;共计 575 分 函数题编程题 6-2 多项式求值 &#xff08;15 分&#xff09; 函数接口定义&…...

手机h5免费模板网站/百度认证平台

变差函数是Motheron在1965年提出的一种矩估计方法&#xff0c;为区域化变量的增量平方的数学期望&#xff0c;也就是区域化变量的增量的方差&#xff0c;很多学者直接将半变差函数称之为变差函数。变差函数是地统计学特有的研究工具&#xff0c;不仅能够表征区域化变量的空间结…...

wordpress simple主题/优化营商环境工作总结

如果你只是不想要你插入到文档中的图片的某一小部分&#xff0c;试问你应该怎么办呢&#xff1f;其实很简单&#xff0c;你可以删除图片的背景哦&#xff01;在Word2013中是可以这么做的&#xff0c;不信的话你就来试试吧。操作步骤如下&#xff1a;1、用Word2013打开一篇文档&…...