title: Nginx ignores client_max_body_size defined in nginx.conf in /etc/nginx/conf.d/
body: <p>I have a upload api exposed through django server. Whenever I try to upload any file over 1MB I get an error message from nginx saying "413 Entity too large"</p>
  
  <p>I have configuration file called nginx.conf which has <code>client_max_body_size</code> set to 75M in directory <code>/etc/nginx/conf.d</code>
  and In  <code>/etc/nginx/nginx.conf</code> file I have <code>include /etc/nginx/conf.d/*.conf;</code> as the last line in http block then why am i seeing this error?</p>
  
  <p>I have followed this <a href="https://uwsgi-docs.readthedocs.io/en/latest/tutorials/Django_and_nginx.html?highlight=client_max_body_size" rel="nofollow noreferrer">https://uwsgi-docs.readthedocs.io/en/latest/tutorials/Django_and_nginx.html?highlight=client_max_body_size</a> to configuring Django and webserver with uWSGI and Nginx</p>
  
  <p>nginx version 1.15.6</p>
  
  <pre><code># /etc/nginx/nginx.conf
  
  user nginx;
  
  # Set number of worker processes automatically based on number of CPU cores.
  worker_processes auto;
  
  # Enables the use of JIT for regular expressions to speed-up their processing.
  pcre_jit on;
  
  # Configures default error logger.
  error_log /var/log/nginx/error.log warn;
  
  # Includes files with directives to load dynamic modules.
  include /etc/nginx/modules/*.conf;
  
  
  events {
          # The maximum number of simultaneous connections that can be opened by
          # a worker process.
          worker_connections 1024;
  }
  
  http {
          # Includes mapping of file name extensions to MIME types of responses
          # and defines the default type.
          include /etc/nginx/mime.types;
          default_type application/octet-stream;
  
          # Name servers used to resolve names of upstream servers into addresses.
          # It's also needed when using tcpsocket and udpsocket in Lua modules.
          #resolver 208.67.222.222 208.67.220.220;
  
          # Don't tell nginx version to clients.
          server_tokens off;
  
          # Specifies the maximum accepted body size of a client request, as
          # indicated by the request header Content-Length. If the stated content
          # length is greater than this size, then the client receives the HTTP
          # error code 413. Set to 0 to disable.
          client_max_body_size 1m;
  
          # Timeout for keep-alive connections. Server will close connections after
          # this time.
          keepalive_timeout 65;
  
          # Sendfile copies data between one FD and other from within the kernel,
          # which is more efficient than read() + write().
          sendfile on;
  
          # Don't buffer data-sends (disable Nagle algorithm).
          # Good for sending frequent small bursts of data in real time.
          tcp_nodelay on;
  
          # Causes nginx to attempt to send its HTTP response head in one packet,
          # instead of using partial frames.
          #tcp_nopush on;
          # Path of the file with Diffie-Hellman parameters for EDH ciphers.
          #ssl_dhparam /etc/ssl/nginx/dh2048.pem;
  
          # Specifies that our cipher suits should be preferred over client ciphers.
          ssl_prefer_server_ciphers on;
  
          # Enables a shared SSL cache with size that can hold around 8000 sessions.
          ssl_session_cache shared:SSL:2m;
  
  
          # Enable gzipping of responses.
          #gzip on;
  
          # Set the Vary HTTP header as defined in the RFC 2616.
          gzip_vary on;
  
          # Enable checking the existence of precompressed files.
          #gzip_static on;
  
  
          # Specifies the main log format.
          log_format main '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
  
          # Sets the path, format, and configuration for a buffered log write.
          access_log /var/log/nginx/access.log main;
  
  
          # Includes virtual hosts configs.
          include /etc/nginx/conf.d/*.conf;
  }
  </code></pre>
  
  <p>And site.conf file in /etc/nginx/conf.d/</p>
  
  <pre><code># the upstream component nginx needs to connect to
  upstream django {
      server unix:///my-app/socketfiles/nginx-django.sock; # for a file socket
      #server 127.0.0.1:8001; # for a web port socket (we'll use this first)
  }
  
  # configuration of the server
  server {
      # the port your site will be served on
      listen      8443;
      # the domain name it will serve for
      server_name example.com; # substitute your machine's IP address or FQDN
      charset     utf-8;
  
      # max upload size
      client_max_body_size 75M;   # adjust to taste
  
      # Django media
      location /media  {
          alias /my-app/code/media;  # your Django project's media files - amend as required
      }
  
      # Finally, send all non-media requests to the Django server.
      location / {
          uwsgi_pass  django;
          include     /my-app/code/uwsgi_params; # the uwsgi_params file you installed
      }
  }
  </code></pre>