nginx client_max_body_size 没有效果?

nginx client_max_body_size has no effect?

我知道这已经被问过好几次了,但我就是不能让它在我的配置中工作。尝试上传大于默认 nginx 值 client_max_body_size 且 1 MB 的文件时出现 413 错误。

这是我的配置:

nginx.conf:

http {
    client_max_body_size 500M;
    limit_req_status 429;
    limit_conn_status 429;
    limit_req_zone $binary_remote_addr zone=worktoday:40m rate=10r/s;

    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;

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

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    gzip on;
    gzip_disable "msie6";

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
}

mysite.com:

  server {
      client_max_body_size 500M;
      listen 80;

      location / {
          client_max_body_size 500M;

          proxy_pass http://backend;

          proxy_set_header Host $host;

      }

  }

  upstream backend {
      client_max_body_size 500M;
      least_conn;

      server 172.16.10.10;
      server 172.16.10.12;
  }

我尝试了所有组合,将 client_max_body_size 放在所有地方(比如现在),仅在某些地方将其设置为 0(禁用任何限制)等

我很想解决这个问题。

nginx 背后有一个 flask 应用程序 运行 gunicorn。我已经自己尝试了该应用程序(前面没有 nginx)并且它有效。

非常感谢任何帮助,谢谢。

好的,结果是昨天当我问这个问题时我已经筋疲力尽了,我忘记了我们的部署配置。

我们的主服务器充当负载均衡器,后面还有另外两台服务器也有 nginx。我忘记了另外两个 nginx 的存在,而那些是拒绝请求的。

对这两个设置 client_max_body_size 终于解决了我的问题。

提示:有时候最好去睡觉,然后精神焕发地解决您的问题。