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

技术分享 Story 76浏览 0评论

              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

 

转载请注明:成长的对话 » Nginx核心配置-可优化配置参数