信誉比较好的商家可做网站,自助建站和速成网站,东莞建设网东莞市住房和城乡,淄博网站建设淄博文章目录 一. 什么是Nginx二. ngnix的一些模型1、nginx的进程模型2、worker的抢占#xff08;锁#xff09;机制模型3. nginx事件处理模型 三. nginx加载静态资源的过程 一. 什么是Nginx
Nginx是一个高性能HTTP反向代理服务器#xff0c;以下是nginx的相关能力 反向代理锁机制模型3. nginx事件处理模型 三. nginx加载静态资源的过程 一. 什么是Nginx
Nginx是一个高性能HTTP反向代理服务器以下是nginx的相关能力 反向代理nginx选择去将请求路由到那个ip通过配置文件实现集群、负载均衡可以处理2-3万并发连接数官方监测能支持5万并发静态资源服务器通过将静态资源变成为服务。网关对接口进行拦截配置安全管理 正向代理与反向代理的概念 正向代理请求直接到达目标服务器 反向代理请求被Nginx统一接收反向代理服务器接收到之后按照一定的规则将请求分发给指定服务器(通过http模块) 反向代理的优点可以隐藏服务器的存在和特征充当client和服务器的中间层这是比较安全的。 二. ngnix的一些模型
1、nginx的进程模型
nginx采用单主进程多子进程的模型
配置位置nginx.conf worker_processes 默认为1也可以配置为worker_processes auto; 请求过程
从客户端前端页面请求、postman请求到nginxmaster接收请求分发请求到工作进程工作进程处理请求并将返回结果发送给客户端最后管理nginx与客户端的链接。 客户端发送请求当客户端发送HTTP请求到Nginx服务器时Nginx会监听并接收这个请求。Nginx接收请求Nginx的主进程接收到客户端的请求后会将请求分发给工作进程worker process来处理。工作进程处理请求工作进程会根据Nginx的配置文件中的规则对请求进行处理。这包括处理静态文件、代理请求到后端服务器、负载均衡等操作。响应客户端工作进程处理完请求后会生成相应的HTTP响应并将响应发送回给客户端。关闭连接一旦响应发送给客户端Nginx会关闭与客户端的连接释放资源。 注意 master监控worker的健康状况如果有关闭的worker进程会重启新的worker进程。worker之间相互独立。 查看主进程和工作进程
ps -ef | grep nginx 看到有一个主进程若干work进程。 2、worker的抢占锁机制模型 假设一个master开启三个worker子进程 此时client发起请求三个worker去抢占互斥锁accep_mutex假设worker1抢到了就处理请求其他worker等待worker1处理完一个请求并将结果返回给client后重新抢占锁。 3. nginx事件处理模型
当client向worker1请求堵塞时其他client可以接着发出请求到work1是异步非堵塞模型。 为什么Nginx性能这么高 因为他的事件处理机制为异步非阻塞事件处理机制运用了epoll模型提供了一个队列排队解决 非阻塞使得系统资源开销远远小于阻塞模式因为系统不需要创建新的进程(或线程)。 三. nginx加载静态资源的过程
nginx接受客户端请求并找到静态资源的过程 加载过程 客户端请求在页面上输入http:ip:80/ 。路由“/”的请求会请求到Nginx服务器nginx监听到来自80端口的请求接着找到监听80端口的server最后server加载默认的html 这里通过一个简单的server块配置理解下server
server {listen 80;server_name localhost;location / {root html;index index.html index.htm;}这里表示一台server监听80端口server_name对应client的请求ip、hostname当server监听到之后会加载nginx目录可配下html目录配置的文件。 接着详细描述一下 server指令用于定义一个虚拟主机Virtual Host即一个独立的服务器实例。每个server块都包含了对特定域名或IP地址的请求的处理规则端口server块的监听端口即当有固定端口的进程请求时server会进行拦截域名和IP地址可以使用servername指令来指定server块所匹配的域名或IP地址。例如servername example.com;表示匹配域名为example.com的请求。请求处理拦截请求后根据配置进行相对应的请求如代理、重定向、静态文件处理等。例如可以使用location指令来匹配要请求的URLSSL/TLS支持如果需要启用HTTPS协议可以在server块中配置SSL/TLS证书和相关参数以实现安全的通信。负载均衡Nginx还支持负载均衡功能可以在server块中配置upstream指令将请求分发给多个后端服务器以提高系统的性能和可靠性。