zoukankan      html  css  js  c++  java
  • Nginx配置,413 Request Entity Too Large错误解决

    今天有同事找我,说图片上传之后,不知道去哪里了。分析了一下问题,找到原因之后做了处理,这里简要记录一下。

    问题原因:

    1.首先后台log并无错误信息;

    2.捡查了一下浏览器,发现network中有报错,413 Request Entity Too Large,但前台未报错。

    解决办法:

    1.备份Nginx配置文件;(个人习惯,免得修改之后,如果需要还原,忘记原来的配置)

    2.查看当前Nginx配置文件:

    [root@VM_0_16_centos nginx]# cat nginx.conf | grep client_max_body_size

                client_max_body_size    10m;

                client_max_body_size    10m;

                client_max_body_size    10m;

                client_max_body_size    10m;

                client_max_body_size    10m;

                client_max_body_size    10m;

                client_max_body_size    10m;

                client_max_body_size    10m;

    结果发现涉及到很多项目,继续查询

    cat /etc/nginx/nginx.conf | grep -C 10 client_max_body_size

    得到结果如下:

    [root@VM_0_16_centos nginx]# cat /etc/nginx/nginx.conf | grep -C 10 client_max_body_size
            # Load configuration files for the default server block.
            #include /etc/nginx/default.d/*.conf;
    
            location  ^~ /b1/ {
                proxy_pass http://b1_server/;
                proxy_set_header  X-Real-IP  $remote_addr;
                proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;
                proxy_set_header  Host  $http_host;
                proxy_set_header Connection close;
                proxy_connect_timeout 5000ms;
                # client_max_body_size    10m;
    
            access_log  /logs/nginx/access_api_b1.log  main;
                error_log /logs/nginx/error_api_b1.log info;
            }
    
            location ^~ /bn/ {
                proxy_pass http://bn_server/;
                proxy_set_header  X-Real-IP  $remote_addr;
                proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;
                proxy_set_header  Host  $http_host;
                proxy_set_header Connection close;
                proxy_connect_timeout 5000ms;
                # client_max_body_size    10m;
    
           access_log  /logs/nginx/access_api_bn.log  main;
               error_log /logs/nginx/error_api_bn.log info;
            }
    
        # 由于boss程序中web路径已经带/boss前缀,所以proxy_pass不能带/后缀,后续再调整,切记切记!
            location ^~ /boss/ {
                proxy_pass http://boss_server;
                proxy_set_header  X-Real-IP  $remote_addr;
                proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;
                proxy_set_header  Host  $http_host;
                proxy_set_header Connection close;
                proxy_connect_timeout 5000ms;
                # client_max_body_size    10m;
    
            access_log  /logs/nginx/access_api_boss.log  main;
                error_log /logs/nginx/error_api_boss.log info;
            }
    
            location ^~ /detector/ {
                proxy_pass http://detector_server/;
                proxy_set_header  X-Real-IP  $remote_addr;
                proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;
                proxy_set_header  Host  $http_host;
                proxy_set_header Connection close;
                proxy_connect_timeout 5000ms;
                client_max_body_size    10m;
            
            access_log  /logs/nginx/access_api_detector.log  main;
                error_log /logs/nginx/error_api_detector.log info;
            }
    
            location ^~ /sales/ {
                proxy_pass http://sales_server/;
                proxy_set_header  X-Real-IP  $remote_addr;
                proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;
                proxy_set_header  Host  $http_host;
                proxy_set_header Connection close;
                proxy_connect_timeout 5000ms;
                # client_max_body_size    10m;
    
             access_log  /logs/nginx/access_api_sales.log  main;
                error_log /logs/nginx/error_api_sales.log info;
            }
    
            location ^~ /qn/prv/ {
                proxy_pass http://private.haochuang.cn/;
            }
    
            location ^~ /qn/pub/ {
    --
                error_log /logs/nginx/error_admin_boss.log info;
            }
    
            location ^~ /boss/ {
                proxy_pass http://boss_server;
                proxy_set_header  X-Real-IP  $remote_addr;
                proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;
                proxy_set_header  Host  $http_host;
                proxy_set_header Connection close;
                proxy_connect_timeout 5000ms;
                # client_max_body_size    10m;
    
            access_log  /logs/nginx/access_api_boss.log  main;
                error_log /logs/nginx/error_api_boss.log info;
            }
        
        location ^~ /stats/ {
                proxy_pass http://stats_server;
                proxy_set_header  X-Real-IP  $remote_addr;
                proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;
                proxy_set_header  Host  $http_host;
                proxy_set_header Connection close;
                proxy_connect_timeout 5000ms;
                client_max_body_size    10m;
    
                access_log  /logs/nginx/access_api_stats.log  main;
                error_log /logs/nginx/error_api_stats.log info;
            }
    
    
         location ^~ /qn/prv/ {
                proxy_pass http://private.haochuang.cn/; 
        }

     

    3.修改配置文件:

    location / {
                root   html;
                index  index.html index.htm;
       client_max_body_size    1000m;
      }

    修改client_max_body_size 配置:

    server
    {
        listen   80;
        server_name  chat.erp.360buy.com;
        #access_log    /export/servers/nginx/logs/chat.erp.360buy.com;
        location / {
            proxy_pass     http://tomcat;
            client_max_body_size    10m; #表示最大上传10M,需要多大设置多大。
    } }

    3.重新加载配置文件,并重新加载nginx:

    [root@VM_0_16_centos nginx]# /usr/sbin/nginx  -c /etc/nginx/nginx.conf

    nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

    nginx: [emerg] bind() to 0.0.0.0:443 failed (98: Address already in use)

    nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

    nginx: [emerg] bind() to 0.0.0.0:443 failed (98: Address already in use)

    nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

    nginx: [emerg] bind() to 0.0.0.0:443 failed (98: Address already in use)

    nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

    nginx: [emerg] bind() to 0.0.0.0:443 failed (98: Address already in use)

    nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

    nginx: [emerg] bind() to 0.0.0.0:443 failed (98: Address already in use)

    nginx: [emerg] still could not bind()

    [root@VM_0_16_centos nginx]# /usr/sbin/nginx  -s reload

    4.如果还未生效,重启nginx:

    [root@VM_0_16_centos nginx]# /usr/sbin/nginx  -s reload

    [root@VM_0_16_centos nginx]# service nginx restart

    Redirecting to /bin/systemctl restart  nginx.service

    5.再次验证结果,结果可见,最终问题已解决。

     
    附录:
    1.测试nginx配置是否正确
    /usr/local/nginx/sbin/nginx -t

    2.重新加载nginx,nginx相关参数

    [root@VM_0_16_centos nginx]# which nginx

    /usr/sbin/nginx

    [root@VM_0_16_centos nginx]# /usr/sbin/nginx -h

    nginx version: nginx/1.12.2

    Usage: nginx [-?hvVtTq] [-s signal] [-c filename] [-p prefix] [-g directives]

     

    Options:

      -?,-h         : this help

      -v            : show version and exit

      -V            : show version and configure options then exit

      -t            : test configuration and exit

      -T            : test configuration, dump it and exit

      -q            : suppress non-error messages during configuration testing

      -s signal     : send signal to a master process: stop, quit, reopen, reload

      -p prefix     : set prefix path (default: /usr/share/nginx/)

      -c filename   : set configuration file (default: /etc/nginx/nginx.conf)

      -g directives : set global directives out of configuration file

     

     ...

  • 相关阅读:
    哇塞 今天是数论专场呢 我要爆炸了
    树状数组模板题 hdu 1166
    [思维]Radar Scanner
    [思维]Minimum Spanning Tree
    [容斥]数对
    [概率]Lucky Coins
    [数学]特征方程求线性递推方程的通项公式
    [树状数组][2019徐州网络赛I]query
    [计算几何]Piece of Cake
    [欧拉降幂][2019南京网络赛B]super_log
  • 原文地址:https://www.cnblogs.com/haochuang/p/9946141.html
Copyright © 2011-2022 走看看