Nginx常用设置信息

Posted 清风凌雪

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx常用设置信息相关的知识,希望对你有一定的参考价值。

1. 配置信息

http 
# 设置缓存字符串大小,主要用于服务端返回数据过长被截断时使用
proxy_buffer_size 1024k;
proxy_buffers 16 1024k;

#允许客户端上传文件的大小(默认1M)
client_max_body_size 10m;

#分配给客户端请求数据的缓存大小
client_body_buffer_size 1280k;
#客户端请求内容超时时间(状态码:408)
client_body_timeout 600;
#客户端请求header头信息的超时时间(状态码:408)
client_header_timeout 600;

2. 详解

2.1 proxy_buffer_size

语法结构

proxy_buffer_size size

proxy_buffer_size 的默认值是 4k 或者 8k,它的作用是指定nginx读缓存的大小.Nginx使用proxy_buffer_size的大小申请相应read_buf,即指定upstream header的最大长度,如果响应头超过了这个长度,Nginx会报upstream sent too big header的错误,然后客户端收到502的错误码.我们根据项目应将该值调整至合理范围,保证足够的读缓存大小.

2.2 proxy_buffers

语法结构

proxy_buffers  size

proxy_buffers的默认值是2568k,它的作用是设置存储被代理服务器响应的body所占用的buffer个数以及每个buffer大小.默认值的意思是开辟了256个长度为8k大小的read_buf用来存储body,但是并不是连接建立时就开辟256个对应的缓存,而是在当前buffer不够存储响应的body大小时才会申请一个新的buffer,最多申请256个buffer.

2.3 client_max_body_size

语法结构

client_max_body_size 

client_max_body_size默认1M,表示客户端请求服务器最大允许大小,在“Content-Length”请求头中指定.如果请求的正文数据大于client_max_body_size,HTTP协议会报错413RequestEntityTooLarge.就是说如果请求的正文大于client_max_body_size,一定是失败的.如果需要上传大文件,一定要修改该值.

2.4 client_max_body_size

语法结构

client_body_buffer_size 1280k;

Nginx分配给请求数据的Buffer大小,如果请求的数据小于client_body_buffer_size直接将数据先在内存中存储.如果请求的值大于client_body_buffer_size小于client_max_body_size,就会将数据先存储到临时文件中,即client_body_temp指定的路径中,默认该路径值是/tmp/,所以配置的client_body_temp路径,Nginx的用户组一定要有读写权限.否则当传输的数据大于client_body_buffer_size时,写进临时文件则会失败会报错.

以上是关于Nginx常用设置信息的主要内容,如果未能解决你的问题,请参考以下文章

搭建一个具有缓存功能的反向代理服务

获取nginx的当前时间,为啥比电脑的时间多两个小时啊?怎么解决啊?

神奇的Nginx之常用设置

nginx常用指令

nginx常用伪静态设置

Nginx的常用配置