Nginx反向代理附件上传

Nginx反向代理附件上传

前段时间公司测试同事说上传附件过大了就上传失败了,昨天一个人来加班,静下心来,慢慢的捋了一遍,大概过程是这样的,还请客官听我慢慢道来:

和Nginx上传文件有关系的参数一共有三个,分别是:client_body_buffer_sizeclient_body_temp_pathclient_max_body_size,下面我们来一一介绍这三个参数的区别和用法。


client_body_buffer_size: 配置请求体缓存区大小, 如果注释该指令,使用默认的client_body_buffer_size设置,也就是操作系统页面大小的两倍,8k或者16k.

client_body_temp_path设置临时文件存放路径。只有当上传的请求体超出缓存区大小时,才会写到临时文件中

client_max_body_size:设置上传文件的最大值


阐述:

1.当上传文件大小超过了client_body_buffer_size设置的大小,那么会把上传文件临时写到client_body_temp_path目录下,如果没有写的权限那么就玩蛋了,就该报500的错误啦。

2.当上传文件超过了client_body_buffer_size设置的大小,同时也超过了client_max_body_size设置的大小,那么就会报413错误了。

总结:

1.client_body_buffer_size 尽量设置的大点,这是基于速度的考虑,如果因为设置的过小,导致上传的文件老要写磁盘,那速度就太慢了。

2.client_body_temp_path 路径要有可写权限。

3.client_max_body_size 设置上传文件的最大值,这个是基于安全的考虑,我们认为正常用户不会或者基本不会上传太大的文件。

推荐阅读