Nginx常用设置信息

【Nginx常用设置信息】蹉跎莫遣韶光老,人生唯有读书好。这篇文章主要讲述Nginx常用设置信息相关的知识,希望能为你提供帮助。
1. 配置信息

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

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

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

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时,写进临时文件则会失败会报错.

    推荐阅读