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

nginx常用的性能优化

第一步调整工作进程数:

        设置成auto,会自动按照CPU核心数来启动工作进程数,如果设置具体数字,则只会使用指定数量的CPU核心,无法将CPU同一时间都能用得到,所以就不能发挥服务器的最大的性能。

第二步增加进程连接数:

        这一步可以为每个工作进程放大它能处理的连接数,也就是同一时间能够处理的最大连接数,这一步默认是1024,但是要调到多大需要根据业务情况来进行合理调节。

第三步开启高校传输模式:

sendfile        on        #当启用这个参数之后呢,nginx就会直接将文件从磁盘发送到socket缓冲区,而不是先将数据从内核缓冲区再拷贝到用户缓冲区然后再从用户缓冲区再拷贝到socket缓冲区,这样一来可以减少拷贝的次数,提高了传输效率,特别是处理大量这种静态文件(图片、css、JS文件)的时候效果更为显著。

tcp_nopush        on        #该参数用于在发送大块数据时优化 TCP 传输。启用此选项会在发送大量数据时,确保 TCP 不会在数据准备好之前就发送一部分,这有助于提高传输效率。


tcp_nodelay        on        #当启用这个参数的时候,该选项用于禁用 Nagle 算法。Nagle 算法的目的是减少小数据包的数量,通过将小的数据包合并成大数据包进行发送。然而,在某些性能要求较高的场景下(如实时应用),小延迟是可接受的,因而禁用此算法可以减少延迟,提高响应速度。

第四步复用链接:

由于http是一个无状态协议,客户端向服务端发送一个请求,服务端响应完之后就会断开这个请求,如果客户端需要发送多个请求,这样会导致服务器与客户端会产生大量的连接和断开的操作,从而会增加服务器的性能开销,通过设置 keepalive_timeout参数可以告知nginx处理完一个请求之后,先保持一下这个连接,以便来再次的接收客户端发送的后续的请求,降低因频繁建立和断开连接所带来的性能消耗。

第五步启用gzip压缩:

        当启用gzip压缩之后,Nginx会先将指定的资源现在本地进行压缩一下,在响应给客户端,这样可以减少数据量,减少带宽的使用,但是会增加CPU的资源开销,因为会产生一个压缩的过程。

第六步设置浏览器缓存:

        expires 30d;        #这个参数用来告知浏览器缓存静态资源的过期时间,当浏览器访问这个网页之后,它会将一些图片之类的静态文件缓存到本地,下一次如果再有相同的请求资源,它就直接从这个本地的缓存中获取,就不会在向服务器请求了,可以大幅度减少服务器的带宽,但是如果某一些静态资源会频繁更新,就不要用这个参数了

第七启用代理缓存:

        在 Nginx 中,代理缓存(Proxy Caching)是一种用于提高性能和减轻后端服务器负担的机制。通过缓存代理服务器从上游服务器获取的响应,Nginx 可以在后续请求中直接提供缓存的内容,而无需每次都请求后端服务器。这可以显著提高响应速度和处理能力。       

具体配置:nginx代理缓存_nginx 代理缓存-CSDN博客

注意:不管是性能优化也好,环境配置也罢,都需要结合具体的业务场景下进行,没有固定不变的配置参数。


http://www.kler.cn/news/330007.html

相关文章:

  • Custom C++ and CUDA Extensions - PyTorch
  • 外部引入的 JavaScript 放置位置
  • SpringBoot 源码解读与自动装配原理结合Actuator讲解
  • 汽车发动机系统(ems)详细解析
  • 01.useStateWithLabel
  • Mybatis-Flex使用
  • MybatisPlus代码生成器的使用
  • linux kernel Gdb在线调试
  • 【论文笔记】Visual Instruction Tuning
  • 操作系统_名词_文件下载_反弹SHELL_防火墙绕过
  • Junit和枚举ENUM
  • CentOS 6文件系统
  • 低功耗4G模组Air780E之串口通信篇
  • Kotlin:2.0.0 的新特性
  • 云服务器部署k8s需要什么配置?
  • 关于git分支冲突问题
  • JVM 基本组成
  • 中原台球展,2025郑州台球展会,中国台球产业链发展大会
  • EDM平台大比拼 用户体验与营销效果双重测评
  • 使用 HTMX 从服务器获取文本更新 Quill Editor 的内容
  • 第二十三节:学习拦截器或者使用AOP实现用户token参数请求检测(自学Spring boot 3.x的第六天)
  • .NET 工具库高效生成 PDF 文档
  • 计算机各专业2025毕业设计选题推荐【各专业 | 最新】
  • 麒麟操作系统部分目录介绍
  • 人口普查管理系统基于VUE+SpringBoot+Spring+SpringMVC+MyBatis开发设计与实现
  • Spring之生成Bean
  • 关联式容器:map和set
  • 【QT Quick】基础语法:导入外部JS文件及调试
  • html5 + css3(上)
  • 回首往事,感受change