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_error
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_use
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