③Nginx 常用配置?
worker_processes 4; #工作进程数work_connections 65535; #每个进程的并发能力error_log
/data/nginx/logs/error.log; #错误日志
④Nginx 是如何实现高并发的?
Nginx 采用的是多进程(单线程)&多路 IO 复用模型,异步,非阻塞 。
一个主进程 Master,多个工作进程 Worker,每个工作进程可以处理多个请求 ,Master 进程主要负责收集、分发请求 。
每当一个请求过来时,Master 就拉起一个 Worker 进程负责处理这个请求 。同时 Master 进程也负责监控 Woker 的状态,保证高可靠性 。
在 Nginx 中的 Work 进程中,为了应对高并发场景,采取了 Reactor 模型(也就是 I/O 多路复用,NIO) 。
I/O 多路复用模型:在 I/O 多路复用模型中,最重要的系统调用函数就是 Select(其他的还有 epoll 等) 。
该方法能够同时监控多个文件描述符的可读可写情况(每一个网络连接其实都对应一个文件描述符),当其中的某些文件描述符可读或者可写时,Select 方法就会返回可读以及可写的文件描述符个数 。
Nginx Work 进程使用 I/O 多路复用模块同时监听多个 FD(文件描述符),当 Accept、Read、Write 和 Close 事件产生时,操作系统就会回调 FD 绑定的事件处理器 。
这时候 Work 进程再去处理相应事件,而不是阻塞在某个请求连接上等待 。
这样就可以实现一个进程同时处理多个连接 。每一个 Worker 进程通过 I/O 多路复用处理多个连接请求 。
为了减少进程切换(需要系统调用)的性能损耗,一般设置 Worker 进程数量和 CPU 数量一致 。
⑤Nginx 和 Apache 的区别?
轻量级,同样起 Web 服务,比 Apache 占用更少的内存及资源抗并发,Nginx 处理请求是异步非阻塞的,而 Apache 则是阻塞型的 。
在高并发下 Nginx 能保持低资源低消耗高性能高度模块化的设计,编写模块相对简单,最核心的区别在于 Apache 是同步多进程模型,一个连接对应一个进程;Nginx是异步的,多个连接(万级别)可以对应一个进程 。
⑥Nginx 的 Upstream 支持的负载均衡方式?
- 轮询(默认)
- weight:指定权重
- ip_hash:每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器
- 第三方:fair、url_hash
- 调整 worker_processes:指 Nginx 要生成的 Worker 数量,最佳实践是每个 CPU 运行 1 个工作进程 。
- 最大化 worker_connections 。
- 启用 Gzip 压缩:压缩文件大小,减少了客户端 HTTP 的传输带宽,因此提高了页面加载速度 。
- 为静态文件启用缓存 。
- 禁用 access_logs:访问日志记录,它记录每个 Nginx 请求,因此消耗了大量 CPU 资源,从而降低了 Nginx 性能 。
推荐阅读
- 小编教你360软件管家设置安装在指定盘符文件夹的操作教程
- 怎么解决Win10专业版软件安装好桌面没有图标?
- 装修用的白板怎么安装
- 装修门是怎么装的
- Win7安装软件时提示“此程序被组策略阻止”怎么解决?
- 虚拟机vmware怎么安装Win11系统
- 卫生间装修如何安装马桶 如何安装马桶
- 我来分享无线鼠标驱动安装成功还是无法使用怎么办。
- 平板太阳能的安装方法 怎样安装太阳能板
- 苹果助手一键安装 苹果手机助手苹果版