zoukankan      html  css  js  c++  java
  • nginx 的常用优化

     

    sendfile on;

    一般在http 块中配置

    不开启这个配置时:nginx程序会多次访问硬盘上的资源,多次拷贝,而且进程会用户态和内核态切换,比较麻烦。

    开启了这个配置:nginx程序直接调用linux内核的sendfile 函数,使用内核的FD文件传输功能,发送数据包,避免了多次拷贝造成资源浪费。

     

    tcp_nopush on

    这个需要开启sendfile 功能

    当tcp_nopush设置为on时,会调用tcp_cork方法进行数据传输。 使用该方法会产生这样的效果:当应用程序产生数据时,内核不会立马封装包,而是当数据量积累到一定量时才会封装,然后传输。相当于建立一个传输的缓冲区。

    tcp_nodelay on

    不缓存data-sends(关闭 Nagle 算法),这个能够提高高频发送小数据报文的实时性。 (关于Nagle算法) 【假如需要频繁的发送一些小包数据,比如说1个字节,以IPv4为例的话,则每个包都要附带40字节的头, 也就是说,总计41个字节的数据里,其中只有1个字节是我们需要的数据。 为了解决这个问题,出现了Nagle算法。 它规定:如果包的大小满足MSS,那么可以立即发送,否则数据会被放到缓冲区,等到已经发送的包被确认了之后才能继续发送。 通过这样的规定,可以降低网络里小包的数量,从而提升网络性能。

     

    event 块优化配置

    • multi_accept on

      使每个worker进程可以同时处理多个客户端请求。

    • use epoll

      使用epoll模式的事件驱动模型,该模型为Linux系统下最优方式。

     

     

    gzip on; #开启资源压缩功能。

    压缩

    对于纯文本的内容,Nginx是可以使用gzip压缩的。使用压缩技术可以减少对带宽的消耗。 由ngx_http_gzip_module模块支持

    配置如下:

      gzip on; //开启gzip功能
      gzip_min_length 1024; //设置请求资源超过该数值才进行压缩,单位字节
      gzip_buffers 16 8k; //设置压缩使用的buffer大小,第一个数字为数量,第二个为每个buffer的大小
      gzip_comp_level 6; //设置压缩级别,范围1-9,9压缩级别最高,也最耗费CPU资源
      gzip_types text/plain application/x-javascript text/css application/xml image/jpeg image/gif image/png; //指定哪些类型的文件需要压缩
      gzip_disable "MSIE 6\."; //IE6浏览器不启用压缩

     

     

  • 相关阅读:
    创建类以及引用一个类
    修改hosts文件
    微信第三方登录接口开发
    Android定位
    Leetcode 102. Binary Tree Level Order Traversal
    Leetcode 725. Split Linked List in Parts
    Leetcode 445. Add Two Numbers II
    Leetcode 328. Odd Even Linked List
    Leetcode 237. Delete Node in a Linked List
    Leetcode 234. Palindrome Linked List
  • 原文地址:https://www.cnblogs.com/fengfengyang/p/15552350.html
Copyright © 2011-2022 走看看