教学典型案例28.生产环境nginx限制上传大小

Posted 爱吃芋圆的兔子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了教学典型案例28.生产环境nginx限制上传大小相关的知识,希望对你有一定的参考价值。

目录

一:背景介绍

二:nginx限制上传大小

1、Nginx官方文档说明

Syntax: client_max_body_size size;

Default: client_max_body_size 1m;

Context: http, server, location

Sets the maximum allowed size of the client request body, specified in the “Content-Length” request header field. If the size in a request exceeds the configured value, the 413 (Request Entity Too Large) error is returned to the client. Please be aware that browsers cannot correctly display this error. Setting size to 0 disables checking of client request body size.

①client_max_body_size 用来修改允许客户端上传文件的大小。默认为1m,如果设置为0,表示上传文件大小不受限制。
②可以在以下模块设置: http, server, location
③client_max_body_size 10m;

2、设置参数

1)、在server模块中设置

server 
    listen       80;
    server_name  localhost;
    #charset koi8-r;

    # client_max_body_size 用来修改允许客户端上传文件的大小。默认为1m,如果设置为0,表示上传文件大小不受限制。
    # 可以在以下模块设置: http, server, location 
    client_max_body_size 10m;

    # 访问 / 网站跟目录返回的内容
    location / 
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    
    
    ...

2)、在http模块中设置

http 
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    # 是否开启压缩功能
    #gzip  on;

    # client_max_body_size 用来修改允许客户端上传文件的大小。默认为1m,如果设置为0,表示上传文件大小不受限制。
    # 可以在以下模块设置: http, server, location 
    client_max_body_size 10m;    

    # 引用配置文件
    include /etc/nginx/conf.d/*.conf;

三:问题分析过程

针对于该案例出现的问题,最快的解决方式(临时解决方案)是:进行nginx大小的调整,调整为可上传条件的大小为止。而针对这种最快的解决方式做了分析。
出现问题的原因:
用有限的思维来思考的问题,只想当下如何解决这个问题,没有从根本上解决问题。以后还可能有其他的情况,如果直接改参数,那么每次都需要改,而其中存在的风险是未知的。
解决问题的方案

  1. 将大的任务拆分成小的任务,分批次完成
  2. 在前端做处理,分多次请求发往后端

四:总结

  1. 要对生产环境有敬畏之心
  2. 要用无限的思维(运动的、相对的、连续的)看待问题
  3. 做任何事情都要有二选三的思维模式
  4. 要用科学的方法(先确定边界、然后遍历、最后找出最优)来看待问题

以上是关于教学典型案例28.生产环境nginx限制上传大小的主要内容,如果未能解决你的问题,请参考以下文章

php+nginx 限制上传文件大小

教学典型案例10.对生产环境以及生产数据的敬畏

nginx修改上传文件大小限制(413 Request Entity Too Large)

LNMP环境修改上传文件大小

[svc]nginx限制客户端上传附件的大小

教学典型案例04.生产环境app打包导致不能自动升级