nginx里面的指令非常多,我这边将我觉得重点的内容抽取出来,跟大家分享
基本指令,参考:链接
浏览器》》nginx 》》服务端》》其他
- 我们这边只研究前三个之间的关系
- 浏览器就称为nginx的下游
- 服务端就称为nginx的上游
- 所有的指令都是跟:(浏览器&&nginx||nginx&&服务端)这两套逻辑有关系
小结:所以下面主要是按照这两个方面,进行对指令的整理
- http节点:整套nginx只有一个
- server节点:一个端口一个
- location节点:在server节点里面,可以无数个
- 根节点:工作线程、日志等
- upstream模块:负载均衡相关配置
这个主要说明的是,客户端和nginx之间交互的配置信息
指令 | 作用 | 区域 | 默认值 | 建议值 |
---|---|---|---|---|
worker_processes | 工作进程,业务 *** 作都是它来执行 | 根节点 | 1 | 跟核心数一致即可,比如8个cpu,就设置8 |
worker_connections | 单个工作进程可以允许同时建立外部连接的数量 | 根节点 | 1024 | 65535(跟open files一致就行) |
keepalive_timeout | 设置keep-alive客户端连接,如果值为0,那就禁用keepalive | http, server, location | 75 | keepalive_timeout 300 |
keepalive_requests | 用于设置一个keep-alive连接上可以服务的请求的最大数量,当最大请求数量达到时,连接被关闭;因为keepalive_requests设置比较小,高并发下超过此值后nginx会强制关闭和客户端保持的keepalive长连接,关闭连接后导致Nginx出现TIME_WAIT | http, server, location | 1000 | 10000 |
keepalive配置 | 使用上面两个参数,并且统一放到http中,keepalive我会单独写一篇,进行细致说明 | http | http {keepalive_timeout 120s;keepalive_requests 10000;} | |
proxy_read_timeout等参数 | 504错误的相关参数链接 | |||
fastcgi_read_timeout等参数 | 504错误的相关参数链接 |
这个主要说明的是,nginx和服务端之间交互的配置信息
指令 | 作用 | 区域 | 默认值 | 建议值 |
---|---|---|---|---|
长连接 | tcp接口复用 | upstream+location | upstream中配置:keepalive 300;location 中配置: proxy_http_version 1.1; proxy_set_header Connection “”; | |
client_header_buffer_size | 请求包体大小 | http, server | 1k | 4k |
large_client_header_buffers | 也是请求包体,如果请求包体超过上面的那个参数,那就会启用这个参数,如果值再超过这个参数, 就会报414错误 | http,server | 32k | 128k |
client_max_body_size | 请求体,跟上传功能有关系,如果 *** 作这个值,就会报413错误 | http, server, location | 1m | 1000m |
client_body_timeout | 定义读取客户端请求正文的超时。超时只在两次连续读取 *** 作之间设置一段时间,不用于整个请求正文的传输。如果客户机在这段时间内没有发送任何内容,则请求将以408(请求超时)错误终止。 | http, server, location | 60s | |
send_timeout | 客户端响应时间 | http, server, location | 60s | |
缓冲区家族 | proxy_buffer_size 4k;proxy_buffering on;proxy_buffers 4 4k;proxy_busy_buffers_size 8k;proxy_max_temp_file_size 1024m; | 这边缓冲区比较复杂,下面单说 |
重点:
1、这个是针对一个每一个http请求的上限,而不是整个buffer区域指定的上限
2、
- proxy_buffering on;在 proxy_buffering 开启的时候,proxy_buffers 和 proxy_busy_buffers_size 才会起作用。
- proxy_buffers 4 4k; 指定一个 request 的 buffer 的数量和大小 默认值64k
- proxy_busy_buffers_size 8k;忙的时候,读取和响应一并来,会将响应数据存储到这里,进行给客户端,其实就是proxy_buffer_size 的加大版
- proxy_max_temp_file_size 1024m; 默认值1024m,请求响应没得存储,就先放到这个临时文件中,如果超过这个值,那就直接通讯,没到缓存
- proxy_buffer_size 4k;指定后端 response 的 buffer 的大小,它是来自后端 response 的一部分,它包含 Headers,从 response 分离出来。它仅用于限定 headers 的 buffer 区,所以它的值比 proxy_buffers 更低,有一点特殊在于,无论 proxy_buffering 是否开启,proxy_buffer_size 都会起作用。默认值8k
后续有遇到重要的参数,我会再扩展
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)