Nginx面试题

使用过nginx,它在业务里承担什么角色,为什么要用?

从单机架构到集群架构的转变,需要一个实现负载均衡和反向代理功能的软件,加上nginx可以非常轻松的解决掉很多前端常见的需求,比如gzip压缩,跨域等等问题,所以选择了ng。

面试官: 你说到了单机架构到集群架构,单机架构有有什么缺点,让你们产生这样的架构转变。

  • 单点故障问题,如果服务崩溃,会造成所有服务不可用,服务稳定性极低。集群可以解决这个问题,也就是具有高可用性。
  • 耦合度太高,所有服务在一台服务器上,或者说都在一份代码里,可拓展性就比较低
  • 单节点并发能力有限,用户量增多,如果流量大了,可能需要负载均衡,让多个服务器来分担流量,集群可以解决这个问题,在流量大的时候,自动扩缩容,也就是具有高可拓展性(借助k8s)

面试官: 你们有没有遇到一些坑,比如单机架构的某个功能,在集群架构下就没法用了

  • session。单体架构比如session可以存在内存里(不建议这么做,因为非常容易造成内存占用过高),在集群环境,这样的方案无法跨服务共享session。

    • 可以使用redis实现分布式的session。
  • 定时任务。单体架构的定时任务可能会在每台机器上都搞一遍,所以可能需要单独起一个定时任务的服务,独立部署。

    • 可以使用k8s来解决,k8s有专门的定时器控制器。

nginx的反向代理功能,那什么是正向代理,什么是反向代理?

首先代理是指,客户端和服务端之间有一个代理服务器,其中代理服务器承担什么样的角色,决定了它是正向代理还是反向代理。

正向代理总结就一句话:代理端代理的是客户端。比如我们翻墙。 反向代理总结一句话:反向代理就是服务端。比如用户访问我们的nginx。

你还提到说,你们使用nginx实现了负载均衡,负载均衡有哪些算法

k8s本身自带负载均衡,所以如果使用k8s的话,nginx更多的是承担了反向代理的作用,还有动静资源分离,对于负载均衡的功能交给k8s更适合。

nginx的upstream(用来实现负载均衡的字段配置)目前支持的5种方式的分配

1、轮询(默认)

每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

upstream backserver { server 192.168.0.14; server 192.168.0.15; }

2、指定权重

指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。

upstream backserver { server 192.168.0.14 weight=8; server 192.168.0.15 weight=10; }

3、IP绑定 ip_hash

每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。

upstream backserver { ip_hash; server 192.168.0.14:88; server 192.168.0.15:80; }

4、url_hash(第三方)

按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。

upstream backserver { server squid1:3128; server squid2:3128; hash $request_uri; hash_method crc32; }

Nginx为什么采用多进程结构而不是多线程

  • 更安全

主要是因为ng要保持高可用性,多线程结构中,多个线程间是共享内存空间的,如果一个第三方模块的代码导致内存空间发生某些错误时,会导致整个ng进程挂掉。而采用多进程就不会出现这样的

  • 性能更好

并且对比Apache。

Apache : 创建多个进程或线程,而每个进程或线程都会为其分配 cpu 和内存(线程要比进程小的多,所以 worker 支持比 perfork 高的并发),并发过大会榨干服务器资源。

Nginx: 采用单线程来异步非阻塞处理请求(管理员可以配置 Nginx 主进程的工作进程的数量)(epoll),不会为每个请求分配 cpu 和内存资源,节省了大量资源,同时也减少了大量的 CPU 的上下文切换。所以才使得 Nginx 支持更高的并发。

Nginx怎么处理请求的?

(官方写的处理请求有11个阶段,但是我认为实际上理解以下7个阶段就足够了)

一个请求过来,nginx会:

  1. Read Request Headers:解析请求头。(知晓是哪个server,也就是哪个ip和端口号去处理)
  2. Identify Configuration Block:识别由哪一个 location 进行处理,匹配 URL。
  3. Apply Rate Limits:判断是否限速。例如可能这个请求并发的连接数太多超过了限制,或者 QPS 太高。
  4. Perform Authentication:连接控制,验证请求。例如可能根据 Referrer 头部做一些防盗链的设置,或者验证用户的权限。
  5. Generate Content:生成返回给用户的响应。为了生成这个响应,做反向代理的时候可能会和上游服务(Upstream Services)进行通信,然后这个过程中还可能会有些子请求或者重定向,那么还会走一下这个过程(Internal redirects and subrequests)。
  6. Response Filters:过滤返回给用户的响应。比如压缩响应,或者对图片进行处理。
  7. Log:记录日志。

Nginx 是如何实现高并发的?

  1. 事件驱动(主要是网络I/O的读事件和写事件)

    • nginx跟node.js很相似的一点,就是也有事件循环,目的是使用异步非阻塞的I/O模式去解决请求高并发的问题
    • 我们需要知道,事件其实是操作系统的内核产生的,然后给应用去是使用,但是例如ng有100万个连接,只有某些连接产生数据的时候,才会把这些数据给ng,nginx(node.js)怎么知道这个事件是给ng的?正常思路就是我把这100万个连接相关的fd都遍历一遍,哪些产生数据就给ng,这样无疑是低效的。ng目前和node都是使用epoll来解决
    • epoll之所以高效, 是因为存在这样一个现实,在建立大量TCP连接的服务端,真正处于活跃状态的TCP连接的数量很少,而select 或者poll 每次要读写数据的时候都需要把所有的TCP连接丢给操作系统判断是否可以读写,因此浪费了大量时间。而eopll会维护一个正在活跃状态的fd的数据结构,正样遍历消耗就减少非常多。
  2. 多进程模型:Nginx 采用多进程/线程模型。

    • 正如上面说的,比如在多进程架构中,每个进程都有自己独立的内存空间,这就意味着一个进程的崩溃不会影响其他进程的正常运行。
  3. 负载均衡:Nginx 作为反向代理服务器。

    • 可以通过负载均衡算法将请求分发到多个后端服务器上,避免单个服务器的过载,提高整个系统的并发处理能力。
  4. 静态资源缓存。

    • Nginx 可以将静态资源缓存到内存或磁盘中,避免每次请求都要重新生成或读取资源,提高了访问速度和并发能力。而且nginx还有零拷贝技术,在传输静态资源的时候直接从例如磁盘读到网卡,而不用经过内存。

nginx作为反向代理服务器的优点是什么?

  1. 高性能:nginx采用了异步非阻塞的工作方式,可以在不占用过多资源的情况下处理大量的并发请求,从而保证了服务器的高性能。此外,nginx还支持多线程和负载均衡等功能,可以进一步提高服务器的性能。
  2. 高可靠性:nginx具有较好的稳定性和可靠性,可以有效防止服务器因为突发流量而崩溃。nginx还支持动态配置,可以实时地对服务器进行调整,从而保证服务器的稳定性和可靠性。
  3. 负载均衡:nginx可以实现负载均衡,将请求分发到不同的服务器上进行处理,从而提高了系统的并发处理能力和可扩展性。
  4. 缓存机制:nginx支持缓存机制,可以将常用的数据缓存在内存中,从而加快数据的访问速度,降低服务器的负载。
  5. 安全性:nginx具有较好的安全性,可以对HTTP请求进行访问控制和防御攻击,如DDoS攻击、SQL注入等,从而保障服务器的安全性。
  6. 方便水平拓展,比如新增别的服务,直接在ng的代理配置文件中加入一条规则即可

如何实现nginx的动静分离,为什么要这么做?

目的是静态资源一般都不会改变(前端目前使用不同的content hash作为打包后文件的名的一部分,所以可以放心大胆的把这些文件缓存起来)。可以让我们提供的web服务更加高效。

配置动静分离很简单,主要是匹配静态资源,然后设置缓存响应头即可(比如 expires,catch-control)。

location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css){ root /soft/nginx/static_resources; expires 7d; }

注意这里的nginx的expires 7d;会在响应头里加入expires,catch-control两个响应头。

还需要注意,expire是把缓存放到了浏览器里,nginx本身也可以缓存静态文件,需要设置proxy_cache

Nginx目录结构有哪些?

  • /etc/nginx/: nginx的主要配置文件存放目录。
  • /etc/nginx/nginx.conf: nginx的主要配置文件,包含了http、server、location等模块的配置。
  • /etc/nginx/conf.d/: 存放其他配置文件的目录。
  • /var/log/nginx/: 存放nginx日志的目录。
  • /var/cache/nginx/: 存放nginx缓存文件的目录。
  • /usr/share/nginx/: 存放nginx默认网页文件的目录。
  • /usr/share/nginx/html: 存放默认主页文件的目录。

Nginx如何实现热更新

Nginx支持热更新配置文件和重载(reload)服务进程,而不需要停止服务。

以下是Nginx进行热更新的步骤:

  1. 编辑新的配置文件

通过修改Nginx的配置文件来更新服务器设置。您可以通过编辑配置文件进行更改,例如更改端口号、添加新的虚拟主机等。

  1. 检查配置文件是否正确

在应用新的配置文件之前,需要检查配置文件是否正确,以避免出现错误。您可以使用以下命令检查配置文件的语法:

sudo nginx -t

  1. 重载Nginx服务

如果新的配置文件没有错误,则可以重新加载Nginx服务以使更改生效。使用以下命令重新加载Nginx服务:

sudo nginx -s reload

Nginx配置文件nginx.conf有哪些属性模块?

  • main: 全局配置
    • event: 配置工作模式以及连接数
      • 比如 epoll和worker_connections
    • http: http模块相关配置
      • server 虚拟主机配置,可以有多个
        • location 路由规则,表达式
        • upstream 配置集群(负载均衡的规则)

如何用Nginx解决前端跨域问题?

location / { # 允许跨域的请求,可以自定义变量$http_origin,*表示所有 add_header 'Access-Control-Allow-Origin' *; # 允许携带cookie请求 add_header 'Access-Control-Allow-Credentials' 'true'; # 允许跨域请求的方法:GET,POST,OPTIONS,PUT add_header 'Access-Control-Allow-Methods' 'GET,POST,OPTIONS,PUT'; # 允许请求时携带的头部信息,*表示所有 add_header 'Access-Control-Allow-Headers' *; # 允许发送按段获取资源的请求 add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range'; # 一定要有!!!否则Post请求无法进行跨域! # 在发送Post跨域请求前,会以Options方式发送预检请求,服务器接受时才会正式请求 if ($request_method = 'OPTIONS') { add_header 'Access-Control-Max-Age' 1728000; add_header 'Content-Type' 'text/plain; charset=utf-8'; add_header 'Content-Length' 0; # 对于Options方式的请求返回204,表示接受跨域请求 return 204; } }

nginx限流怎么做的?

  1. 限制请求速率:可以使用Nginx的“ngx_http_limit_req_module”模块来限制每个IP地址的请求速率。该模块基于“漏桶算法”实现,可以在指定时间窗口内限制客户端请求的数量。例如:

limit_req_zone $binary_remote_addr zone=mylimit:10m rate=5r/s; server { location / { limit_req zone=mylimit burst=10 nodelay; ... } }

上述配置将限制每个IP地址的请求速率为每秒5个请求,如果突发请求超过10个,则Nginx将返回“503 Service Unavailable”的HTTP错误代码。

  1. 限制并发连接数:可以使用Nginx的“ngx_http_limit_conn_module”模块来限制每个IP地址的并发连接数。该模块基于“令牌桶算法”实现,可以在指定时间窗口内限制客户端的并发连接数。例如:

limit_conn_zone $binary_remote_addr zone=mylimit:10m; server { location / { limit_conn mylimit 5; ... } }

上述配置将限制每个IP地址的并发连接数为5个,如果超过限制则Nginx将返回“503 Service Unavailable”的HTTP错误代码。

在nginx中,如何使用未定义的服务器名称来阻止处理请求?

在Nginx中,可以使用server_name指令来定义服务器名称,如果收到的请求不匹配任何定义的服务器名称,则默认使用server_name_的配置。如果你想阻止处理这些未定义的请求,可以在server_name_的配置中添加一个特殊的指令return,将HTTP状态码设置为444,它表示连接被关闭,这将终止连接并阻止Nginx处理请求。例如:

markdownCopy code server { listen 80 default_server; listen [::]:80 default_server; server_name _; return 444; }

在上面的示例中,配置了一个默认的服务器块,server_name_,并使用return指令返回状态码为444。这将导致Nginx关闭连接并不响应未定义服务器名称的请求。请注意,如果你的Nginx版本低于0.8.48,那么将无法使用状态码444,你需要使用其他状态码如400403

怎么限制浏览器访问?

nginx怎么限制浏览器访问?

如果你想要限制浏览器访问你的Nginx服务器,可以使用$http_user_agent变量来检查HTTP请求中的User-Agent头部,以识别浏览器类型,然后使用deny指令来拒绝来自指定浏览器的请求。以下是一个示例Nginx配置文件:

perlCopy code server { listen 80; server_name example.com; if ($http_user_agent ~* (Firefox|Chrome)) { return 403; } location / { root /var/www/html; index index.html; } }

在上面的示例中,$http_user_agent变量用于检查HTTP请求中的User-Agent头部,如果它匹配FirefoxChrome,则会返回403 Forbidden错误,否则允许访问/路径下的文件。使用if指令来匹配User-Agent头部并返回错误响应,这样就可以限制浏览器访问。但是,由于if指令在性能上的影响,建议在高流量的生产环境中避免使用。

Nginx 如何开启压缩?

http{ # 开启压缩机制 gzip on; # 指定会被压缩的文件类型(也可自己配置其他类型) gzip_types text/plain application/javascript text/css application/xml text/javascript image/jpeg image/gif image/png; # 设置压缩级别,越高资源消耗越大,但压缩效果越好 gzip_comp_level 5; # 在头部中添加Vary: Accept-Encoding(建议开启) gzip_vary on; # 处理压缩请求的缓冲区数量和大小 gzip_buffers 16 8k; # 对于不支持压缩功能的客户端请求不开启压缩机制 gzip_disable "MSIE [1-6]\."; # 低版本的IE浏览器不支持压缩 # 设置压缩响应所支持的HTTP最低版本 gzip_http_version 1.1; # 设置触发压缩的最小阈值 gzip_min_length 2k; # 关闭对后端服务器的响应结果进行压缩 gzip_proxied off; }

什么是C10K问题?

C10K问题是指如何在单个服务器上处理超过10,000个并发连接的问题,其中“C”表示并发连接数,而“10K”表示10,000。Apache

如何在Nginx中获得当前的时间?

在Nginx中获取当前时间可以使用Nginx内置的变量$time_local。这个变量包含了当前时间的本地表示(通常是格式化为“日/月/年 时:分:秒”的字符串)。

用Nginx服务器解释-s的目的是什么?

在Nginx服务器中,使用-s选项可以指定要向服务器发送的信号。这些信号是指令Nginx服务器执行某些特定的操作,而不是向服务器发送HTTP请求。

常用的信号包括:

  • stop:停止Nginx服务器。
  • quit:优雅地停止Nginx服务器。
  • reload:重新加载Nginx配置文件,以便应用最新更改。

nginx如果location中配置了access_log, 同一server中也配置了access_log以谁为准

以location中为准,简单来说就是,存储值的指令,在子配置不存在时,直接使用父配置块,如果子配置存在时,直接覆盖父配置块

nginx中的listen,只能指定为端口吗,比如80

错误,还可以指定ip+端口,甚至unix的socket地址。

你对nginx做过什么优化

  • 增大cpu的利用率
    • 启用多进程的worker(比如等于cpu核心数)
    • 使用缓存,比如提前压缩好文件,减少cpu的压缩时的时间
  • 增大内存的利用率
    • 使用零拷贝,不走内存,直接将磁盘数据发送到网卡
  • 增大磁盘I/O利用率
    • Nginx可以通过缓存来减少磁盘I/O,从而提高性能
  • 增大网络带宽的利用率
    • 启用TCP优化:可以通过调整Nginx的TCP参数,如增大TCP窗口大小
    • 启用HTTP/2:HTTP/2协议可以通过多路复用技术,同时处理多个请求,从而提高网络带宽利用率。
    • 启用gzip压缩:使用gzip压缩可以减少传输的数据量,从而提高网络带宽利用率
    • 通常Nginx作为代理服务,负责分发客户端的请求,那么建议开启HTTP长连接,用户减少握手的次数,降低服务器损耗,具体如下:

upstream xxx { # 长连接数 keepalive 32; # 每个长连接提供的最大请求数 keepalived_requests 100; # 每个长连接没有新的请求时,保持的最长时间 keepalive_timeout 60s; }

大文件上传,经过nginx会有什么问题吗?

在某些业务场景中需要传输一些大文件,但大文件传输时往往都会会出现一些Bug,比如文件超出限制、文件传输过程中请求超时等,那么此时就可以在Nginx稍微做一些配置,先来了解一些关于大文件传输时可能会用的配置项:

配置项释义
client_max_body_size设置请求体允许的最大体积
client_header_timeout等待客户端发送一个请求头的超时时间
client_body_timeout设置读取请求体的超时时间
proxy_read_timeout设置请求被后端服务器读取时,Nginx等待的最长时间

上述配置仅是作为代理层需要配置的,因为最终客户端传输文件还是直接与后端进行交互,这里只是把作为网关层的Nginx配置调高一点,调到能够“容纳大文件”传输的程度。

nginx location的匹配规则是什么?

  1. 精确匹配(使用=符号开头)的location指令优先级最高。
  2. 正则表达式匹配(使用~~*符号开头)的location指令优先级次之。
  3. 前缀匹配(使用^~符号开头)的location指令优先级次于正则表达式匹配。
  4. 普通匹配(不使用任何符号)的location指令优先级最低。

如果有多个location指令匹配同一个请求,Nginx将选择优先级最高的匹配项来处理请求。

nginx配置过https吗

以下是腾讯云建议的https配置:

#设定虚拟主机配置 server { #侦听443端口,这个是ssl访问端口 listen 443; #定义使用 访问域名 server_name XXX.com; #定义服务器的默认网站根目录位置 root /web/www/website/dist; #设定本虚拟主机的访问日志 access_log logs/nginx.access.log main; # 这些都是腾讯云推荐的配置,直接拿来用就行了,只是修改证书的路径,注意这些路径是相对于/etc/nginx/nginx.conf文件位置 ssl on; ssl_certificate 1_XXX.com_bundle.crt; ssl_certificate_key 2_XXX.com.key; ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置 ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置 ssl_prefer_server_ciphers on; #默认请求 location / { root /web/www/website/dist; #定义首页索引文件的名称 index index.html; } }

这里解释一下ssl相关的配置:

  1. ssl on;: 启用 SSL。
  2. ssl_certificate: 指定 SSL 证书的路径。
  3. ssl_certificate_key: 指定 SSL 证书密钥的路径。这是服务器私钥的位置。
  4. ssl_session_timeout: 指定 SSL 会话的超时时间。在这个例子中,会话超时时间为 5 分钟。
  5. ssl_protocols: 指定 SSL 协议的版本。为什么腾讯云建议是TLS的一些版本呢。这是因为这些协议都是目前被广泛支持的安全协议版本,它们具有良好的安全性和兼容性。比如SSLv2和v3都爆出严重的安全漏洞了。
  6. ssl_ciphers: 指定 SSL 加密套件的名称。
  7. ssl_prefer_server_ciphers: 启用服务器端的加密套件优先级。

其实我们主要做的就是把证书和私钥配好即可

root和alias的区别

在nginx中,rootalias都是用来指定静态资源文件所在的目录的指令。

  1. root指令:root指令是指定根目录,表示请求的文件相对于根目录的路径。它是默认的情况下使用的指令,一般情况下在location或server中只需要使用root就可以了。

举例:假设根目录为/usr/share/nginx/html,当客户端请求http://example.com/test.html时,Nginx会在/usr/share/nginx/html/test.html中寻找该文件。

server { listen 80; server_name example.com; root /usr/share/nginx/html; }

  1. alias指令:alias指令可以指定某个路径下的资源映射到另外一个路径下,它可以用来隐藏实际的资源路径,从而保证资源的安全性。当使用alias指令时,Nginx会将匹配到的location路径中匹配到的部分替换为指定的路径。

举例:假设需要将/files目录下的所有文件都映射到/var/www/files目录下,可以使用alias指令进行配置。

location /files { alias /var/www/files/; }

在上面的例子中,如果客户端请求http://example.com/files/test.html,Nginx会在/var/www/files/test.html中寻找该文件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/20223.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言假期作业 DAY 12

一、选择题 1、请阅读以下程序&#xff0c;其运行结果是&#xff08; &#xff09; int main() { char cA; if(0<c<9) printf("YES"); else printf("NO"); return 0; } A: YES B: NO C: YESNO D: 语句错误 答案解析 正确答案&#xff1a; A 0<c&l…

【图论】强连通分量

一.定义 强连通分量&#xff08;Strongly Connected Components&#xff0c;简称SCC&#xff09;是图论中的一个概念&#xff0c;用于描述有向图中的一组顶点&#xff0c;其中任意两个顶点之间都存在一条有向路径。换句话说&#xff0c;对于图中的任意两个顶点u和v&#xff0c;…

Python爬虫—破解JS加密的Cookie

前言 在进行网站数据爬取时&#xff0c;很多网站会使用JS加密来保护Cookie的安全性&#xff0c;而为了防止被网站反爬虫机制识别出来&#xff0c;我们通常需要使用代理IP来隐藏我们的真实IP地址。 本篇文章将介绍如何结合代理IP破解JS加密的Cookie&#xff0c;主要包括以下几个…

el-select 分页加载

el-select 分页加载 el-select 分页懒加载监听的指令——loadMore指令的使用 el-select 分页懒加载 针对数据量大的选择器&#xff0c;需要分页从后端接口获取数据&#xff0c;前端监听选择器下拉框的滚动事件&#xff0c;当往下滚动至底部一定位置时&#xff0c;调接口 监听…

银河麒麟V10 QtCreator安装配置说明(断网离线)

文章目录 1.安装要求:2.安装Qt1.安装要求: 拥有Qt软件安装包qt5.12-arm链接:https://pan.baidu.com/s/1FJerT6SckfjABxAn60rsrA?pwd=mfi6 提取码:mfi6 2.安装Qt 1)拷贝Qt软件包qt5.12-arm至系统/home/kylin/桌面 2)安装Qt软件包 cd /home/kylin/qt5.12-arm/桌面 su…

小研究 - 基于解析树的 Java Web 灰盒模糊测试(一)

由于 Java Web 应用业务场景复杂, 且对输入数据的结构有效性要求较高, 现有的测试方法和工具在测试Java Web 时存在测试用例的有效率较低的问题. 为了解决上述问题, 本文提出了基于解析树的 Java Web 应用灰盒模糊测试方法. 首先为 Java Web 应用程序的输入数据包进行语法建模创…

Flutter:gsy_flutter_demo项目学习——布局切换动画、列表滑动监听、列表滑动到指定位置、高斯模糊

前言 gsy_flutter_demo是一个关于各种小案例和小问题的方案解决。项目是由flutter大佬恋猫de小郭维护的 项目地址&#xff1a;https://github.com/CarGuo/gsy_flutter_demo 感兴趣的可以看一下大佬的文章&#xff1a;Flutter完整开发实战详解系列&#xff0c;GSY Flutter 系…

[SQL挖掘机] - 窗口函数 - lag

介绍: lag() 是一种常用的窗口函数&#xff0c;它用于获取某一行之前的行的值。它可以用来在结果集中的当前行之前访问指定列的值。 用法: lag() 函数的语法如下&#xff1a; lag(列名, 偏移量, 默认值) over (partition by 列名1, 列名2, ... order by 列名 [asc|desc], .…

非凸科技受邀参加中科大线上量化分享

7月30日&#xff0c;非凸科技受邀参加由中国科学技术大学管理学院学生会、超级量化共同组织的“打开量化私募的黑箱”线上活动&#xff0c;分享量化前沿以及求职经验&#xff0c;助力同学们拿到心仪的offer。 活动上&#xff0c;非凸科技量化策略负责人陆一洲从多个角度分享了如…

485modbus转profinet网关连三菱变频器modbus通讯触摸屏监控

本案例介绍了如何通过485modbus转profinet网关连接威纶通与三菱变频器进行modbus通讯。485modbus转profinet网关提供了可靠的连接方式&#xff0c;使用户能够轻松地将不同类型的设备连接到同一网络中。通过使用这种网关&#xff0c;用户可以有效地管理和监控设备&#xff0c;从…

【华秋干货铺】PCB布线技巧升级:高速信号篇

如下表所示&#xff0c;接口信号能工作在8Gbps及以上速率&#xff0c;由于速率很高&#xff0c;PCB布线设计要求会更严格&#xff0c;在前几篇关于PCB布线内容的基础上&#xff0c;还需要根据本篇内容的要求来进行PCB布线设计。 高速信号布线时尽量少打孔换层&#xff0c;换层优…

hash 模式和 history 模式的实现原理

hash 模式和 history 模式的实现原理&#xff1a; #后面的 hash 值的变化不会导致浏览器向服务器发出请求&#xff0c;浏览器不发出请求&#xff0c;就不会刷新页面。通过监听 hashchange 事件的变化可以知道 hash 值发生了哪些变化&#xff0c;然后根据 hash 值的变化来实现更…

vue 3.0 + element-ui MessageBox弹出框的 让文本框显示文字 placeholder

inputPlaceholder:请填写理由, 方法实现如下: this.$prompt(, 是否确认&#xff1f;, { confirmButtonText: 确定, cancelButtonText: 取消, inputPlaceholder:请填写理由, }).then(({ value }) > { if(value null || value ""){ Message({message: 请填…

卷积神经网络【图解CNN】

文章目录 1.卷积运算2.池化3.全连接层 卷积神经网络可以看作一个函数或者黑箱&#xff0c;输入就是图片的像素阵列&#xff0c;输出就是这个图片是什么&#xff1f; 图片是X&#xff0c;那么就输出‘x’&#xff0c;图片是‘O’,那么就输出O&#xff1b; 在计算机眼中&#xff…

如何制作VR全景地图,VR全景地图可以用在哪些领域?

引言&#xff1a; 随着科技的迅速进步&#xff0c;虚拟现实&#xff08;VR&#xff09;技术正逐渐渗透到各个领域。VR全景地图作为其中的重要应用之一&#xff0c;为人们提供了身临其境的全新体验。 一.什么是VR全景地图&#xff1f; VR全景地图是一种利用虚拟现实技术&…

Sprint Boot学习路线5

Spring MVC Spring MVC是Spring框架的一部分&#xff0c;是一个Web应用程序框架。它旨在使用Model-View-Controller&#xff08;MVC&#xff09;设计模式轻松构建Web应用程序。 在Spring MVC中&#xff0c;应用程序被分为三个主要组件&#xff1a;Model、View和Controller。M…

怎样做好字幕翻译服务?

我们知道&#xff0c;字幕泛指影视作品后期加工的文字&#xff0c;往往显示在电视、电影、舞台作品中。字幕翻译就是将外国影片配上本国字幕或者是将本国影片配上外国字幕。那么&#xff0c;字幕翻译的主要流程是什么&#xff0c;怎样做好字幕翻译服务&#xff1f; 据了解&…

【mysql复习】——单表查询知识复习

很喜欢一句话&#xff1a;这个世上只有一种真正的英雄主义&#xff0c;就是你认清了生活的真相&#xff0c;却仍然热爱它&#xff1b; 目录 条件查询&#xff08;查询满足条件的数据&#xff09; 注意点: 在学习数学公式以及排序等关键字时&#xff0c;首先你要明白他们使用在…

Android 向系统日历添加日程提醒事件

Android 向系统日历添加日程提醒事件 1.权限申请 <uses-permission android:name"android.permission.READ_CALENDAR" /> <uses-permission android:name"android.permission.WRITE_CALENDAR" /> 注意&#xff1a;6.0 以上需要申请权限才可…

企业既要用u盘又要防止u盘泄密怎么办?

企业在日常生产生活过程中&#xff0c;使用u盘交换数据是最企业最常用也是最便携的方式&#xff0c;但是在使用u盘的同时&#xff0c;也给企业的数据保密工作带来了很大的挑战&#xff0c;往往很多情况下企业的是通过u盘进行数据泄漏的。很多企业采用一刀切的方式&#xff0c;直…