nginx配置说明
1.性能优化相关配置
1.work_process number | auto
worker进程的数量;通常应该为当前主机的cpu核数
2.worker_cpu_affinity 【cpu mask】 提高缓存命中率
cpu mask : 00000001 : 0号cpu
00000010 : 1号cpu
1000000 : 8号cpu
worker_cpu_affinity 0001 0100
3.worker_priority number worker进程的优先级
Syntax:worker_priority number;
Default:worker_priority 0;
Context:main
定义工作进程的调度优先级,就像使用nice命令一样:负数表示更高的优先级。 允许范围通常在-20到20之间变化。
4.worker_rlimit_nofile
worker进程所能打开的文件数量上限 如65535 支持并发连接数
5. events
events {
#worker_connections 1024;
}
worker_connections 设置工作进程可以打开的最大并发连接数 work_process * worker_connections = 最大并发数
use method
指明并发连接连接请求的处理方法,默认自动选择最优方法
use epoll;
accept_mutex on | off
如果启用了accept_mutex,则工作进程将依次接受新连接。 否则,将通知所有工作进程有关新连接的信息,如果新连接的数量很少,则某些工作进程可能只会浪费系统资源。(一般情况下打开即可,off情况下可能突然唤醒所有work造成惊群)
调试定位选项
1.daemon
Syntax:daemon on | off;
Default:daemon on;
Context:main
是否以守护进程方式运行nginx
2.master_process
Syntax:master_process on | off;
Default:master_process on;
Context:main
是否以 master / worker 运行进程 默认为master 启动后没有worker进程
3.error_log
Syntax:error_log file [level];
Default:error_log logs/error.log error;
Context:main, http, mail, stream, server, location
http 模块 ngx_http_core_module
http {
server {
1. listen address [:port] [default_server] ; 监听端口路径
2. server_name www.baidu.com; 网站名称
3. root /PATH/; 根目录
}
}
4. tcp_nodelay
Syntax:tcp_nodelay on | off;
Default:
tcp_nodelay on;
Context:http, server, location
在keepalived模式下的连接是否启用
tcp_nodelay 当为off时,延时发送,合并多个请求后再发送
默认为on 不延迟发送
5.sendfile
是否启用sendfile ,内核中封装报文直接发送 默认为off
普通read操作
硬盘—>内核缓冲区—>用户缓冲区—>内核socket缓冲区—>协议引擎
使用sendfile
硬盘—>内核缓冲区—>内核socket缓冲区—>协议引擎
默认为off
6.server_tokens
Syntax:server_tokens on | off | build | string;
Default:server_tokens on;
Context:http, server, location
是否在响应的server 显示 nginx 版本
7.alias
目录别名
8.error_page
error_page 404 = 200 /404.html
错误也页面返回到200 跳到404.html
8.try_files
location /images/ {
try_files $uri /images/default.gif;
}
按顺序查询文件是否存在返回第一个找到的文件或者文件夹,如果所有文件或者文件夹找不到,会内部重定向到最后一个参数,最后一个参数是回退uri必须存在否则会出现内部500错误
9.keepalive_timeout
Syntax:keepalive_timeout timeout [header_timeout];
Default:keepalive_timeout 75s;
Context:http, server, location
设置保存连接时长,0表示禁止长链接 ,默认为75秒
10.keepalive_requests
Syntax:keepalive_requests number;
Default:keepalive_requests 100;
Context:http, server, location
This directive appeared in version 0.8.0.
在一次长链接上所允许请求资源的最大数量 默认为100次
11.keepalive_disable
Syntax:keepalive_disable none | browser ...;
Default:keepalive_disable msie6;
Context:http, server, location
对那种浏览器禁止长链接
12.send_timeout
Syntax:send_timeout time;
Default:send_timeout 60s;
Context:http, server, location
向客户端发送响应报文超时时长此处指两次写操作之间的间隔时长,而非整个响应过程的传输时长
13 limit_rate
Syntax:limit_rate rate;
Default:
limit_rate 0;
Context:http, server, location, if in location
限制给客户端传输速率
14 limit_except
Syntax:limit_except method ... { ... }
Default:—
Context:location
limit_except GET {
allow 192.168.1.0/32; //允许这个主机
deny all; //其他不允许
}
15.aio
Syntax:aio on | off | threads[=pool];
Default:aio off;
Context:http, server, location
This directive appeared in version 0.8.11.
异步IO
16