• Nginx核心配置-可优化配置参数


                  Nginx核心配置-可优化配置参数

                                           作者:尹正杰

    版权声明:原创作品,谢绝转载!否则将追究法律责任。

    一.nginx的官网查看指令帮助信息方法

    1>.打开nginx的官网(https://nginx.org/),如下图所示,点击"documentation"

    2>.下拉菜单,如下图所示,选择"Alphabetical index of directives"

    3>.搜索你要查询的指令

    4>.查看你搜索指令的帮助信息,如下图所示,官方还提供了使用案例

    二.可优化配置参数

    1>.keepalive_disable

        对哪种浏览器禁用长连接,参考连接:https://nginx.org/en/docs/http/ngx_http_core_module.html#keepalive_disable

    2>.limit_except

      限制客户端使用除了指定的请求方法之外的其它方法,参考连接:https://nginx.org/en/docs/http/ngx_http_core_module.html#limit_except

    3>.aio

      是否启用asynchronous file I/O(AIO)功能,需要编译开启
      linux 2.6以上内核提供以下几个系统调用来支持aio:
        1、SYS_io_setup:建立aio 的context
        2、SYS_io_submit: 提交I/O操作请求
        3、SYS_io_getevents:获取已完成的I/O事件
        4、SYS_io_cancel:取消I/O操作请求
        5、SYS_io_destroy:毁销aio的context
    
      参考连接:https://nginx.org/en/docs/http/ngx_http_core_module.html#aio

    4>.directio

      操作完全和aio相反,aio是读取文件而directio是写文件到磁盘,启用直接I/O,默认为关闭,当文件大于等于给定大小时,例如directio 4m,同步(直接)写磁盘,而非写缓存。
    
      参考链接:https://nginx.org/en/docs/http/ngx_http_core_module.html#directio

    5>.open_file_cache

    open_file_cache off; #是否缓存打开过的文件信息
    open_file_cache max=N [inactive=time];
    nginx可以缓存以下三种信息:
      (1) 文件元数据:文件的描述符、文件大小和最近一次的修改时间
      (2) 打开的目录结构
      (3) 没有找到的或者没有权限访问的文件的相关信息
      max=N:可缓存的缓存项上限数量;达到上限后会使用LRU(Least recently used,最近最少使用)算法实现管理
      inactive=time:缓存项的非活动时长,在此处指定的时长内未被命中的或命中的次数少于open_file_cache_min_uses指令所指定的次数的缓存项即为非活动项,将被删除
    
    参考链接:https://nginx.org/en/docs/http/ngx_http_core_module.html#open_file_cache

    6>.open_file_cache_errors

    open_file_cache_errors on | off;
      是否缓存查找时发生错误的文件一类的信息
      默认值为off
    
    参考链接:https://nginx.org/en/docs/http/ngx_http_core_module.html#open_file_cache_errors

    7>.open_file_cache_min_uses

    open_file_cache_min_uses number;
      open_file_cache指令的inactive参数指定的时长内,至少被命中此处指定的次数方可被归类为活动项
      默认值为1
    
    参考链接:https://nginx.org/en/docs/http/ngx_http_core_module.html#open_file_cache_min_uses

    8>.open_file_cache_valid

    缓存项有效性的检查验证频率,默认值为60s
    
    参考链接:https://nginx.org/en/docs/http/ngx_http_core_module.html#open_file_cache_valid

    三.nginx的主配置文件示例

    [root@node101.yinzhengjie.org.cn ~]# vim /yinzhengjie/softwares/nginx/conf/nginx.conf
    [root@node101.yinzhengjie.org.cn ~]# 
    [root@node101.yinzhengjie.org.cn ~]# cat /yinzhengjie/softwares/nginx/conf/nginx.conf
    worker_processes  4;
    worker_cpu_affinity 00000001 00000010 00000100 00001000; 
    
    events {
        worker_connections  100000;
        use epoll;
        accept_mutex on;
        multi_accept on; 
    }
    
    http {
        include       mime.types;
        default_type  application/octet-stream;
        sendfile        on;
        gzip  on;
        charset utf-8;
    
        #最大缓存10000个文件,非活动数据超时时长60s
        open_file_cache max=10000 inactive=60s;
        #每间隔60s检查一下缓存数据有效性
        open_file_cache_valid 60s;
        #60秒内至少被命中访问5次才被标记为活动数据
        open_file_cache_min_uses 5;
        #缓存错误信息
        open_file_cache_errors on;
    
        #隐藏Nginx server版本。
        server_tokens off;
    
        #当文件大于等于给定大小时,同步(直接)写磁盘,而非写缓存。
        directio 4m;
    
        #上传文件相关参数
        client_max_body_size 10m;
        client_body_buffer_size 16k;
        client_body_temp_path /yinzhengjie/data/web/nginx/temp 1 2 2;
       
    
        #IE系列的浏览器禁用长连接,默认就是禁用了IE的长连接功能.
        keepalive_disable msie6;
    
        #开启长连接后,返回客户端的会话保持时间为60s,单次长连接累计请求达到指定次数请求或65秒就会被断开,后面的60为发送给客户端应答报文头部中显示的超时时间设置为60s:如不设置
    客户端将不显示超时时间。    keepalive_timeout  65 60;
    
        #在一次长连接上所允许请求的资源的最大数量
        keepalive_requests 3;
        
        #导入其他路径的配置文件
        include /yinzhengjie/softwares/nginx/conf.d/*.conf;
    }
    
    [root@node101.yinzhengjie.org.cn ~]# 
    [root@node101.yinzhengjie.org.cn ~]# nginx -t
    nginx: the configuration file /yinzhengjie/softwares/nginx/conf/nginx.conf syntax is ok
    nginx: configuration file /yinzhengjie/soft
  • 相关阅读:
    75.iOS内存管理
    74.CocoaPods安装和使用教程
    73.解决Xcode10 library not found for -lstdc++ 找不到问题
    eclipse中启动tomcat,不能访问localhost解决办法
    点对点模式
    点对点架构模式
    淘宝网分析质量属性场景
    架构漫谈读后感
    《探索需求》阅读笔记6
    《探索需求》阅读笔记5
  • 原文地址:https://www.cnblogs.com/yinzhengjie/p/12045381.html
Copyright © 2020-2023  润新知