nginx 因POST请求体内容过大导致500,设置 client_max_body_size,client_body_buffer_size

设置 client_max_body_size 和 client_body_buffer_size

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

client_body_buffer_size
Nginx分配给请求数据的Buffer大小,如果请求的数据小于client_body_buffer_size直接将数据先在内存中存储。如果请求的值大于client_body_buffer_size小于client_max_body_size,就会将数据先存储到临时文件中
test 案例
#user  nobody;
worker_processes  1;


#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

# pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


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

    sendfile        on;
    keepalive_timeout  65;
    proxy_buffering off;

    #gzip  on;
    map $http_upgrade $connection_upgrade {
        default upgrade;
        '' close;
    }

    server {
        listen       8043 ssl;
        server_name  127.0.0.1;
        
        ssl_certificate /usr/local/etc/nginx/server.crt;
        ssl_certificate_key  /usr/local/etc/nginx/server.key;

	    client_max_body_size 2000M;
        client_body_buffer_size 2000M;
        location / {
            proxy_pass   http://127.0.0.1:8000;
        }

        location /aaaa {
            proxy_pass   http://xxx.xxx.xx.xx;
            proxy_read_timeout 3600s;
            proxy_send_timeout 3600s;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection $connection_upgrade;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

    include servers/*;
}

参考:https://blog.youkuaiyun.com/feifeixiang2835/article/details/84964036

解决"324 err_empty_response"错误的一个常见方法是使用Nginx和PHP设置正确的配置。以下是使用Nginx和PHP解决此错误的步骤: 1. 确认Nginx和PHP均已正确安装并正在运行。 2. 打开Nginx的配置文件(通常位于/etc/nginx/nginx.conf),确保以下配置开启: ``` http { ... client_max_body_size 100M; # 这将设置允许的最请求体小 ... } ``` 3. 在Nginx的配置文件中,找到与PHP相关的配置部分(通常位于/etc/nginx/fastcgi_params文件中)。将以下指令添加到该部分: ``` fastcgi_buffers 16 16k; fastcgi_buffer_size 32k; fastcgi_connect_timeout 300s; fastcgi_send_timeout 300s; fastcgi_read_timeout 300s; ``` 4. 重启Nginx服务器以使配置生效。 5. 如果您的网站使用了PHP框架或CMS(例如WordPress),请确保其PHP.ini文件中也设置了合适的配置。打开PHP.ini文件,将以下指令添加或修改为适当的值: ``` memory_limit = 512M post_max_size = 100M upload_max_filesize = 100M max_execution_time = 300 max_input_time = 300 ``` 6. 保存PHP.ini文件并重启PHP服务。 通过对Nginx和PHP的配置进行适当调整,可以避免或解决"324 err_empty_response"错误。这些配置调整包括增请求体小限制、调整FastCGI缓冲区小和超时时间、以及增PHP内存限制和上传文件小限制等。这些配置调整将确保Nginx和PHP能够正确处理请求并返回响应,从而解决"324 err_empty_response"错误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值