Nginx忽略/etc/nginx/conf.d/中nginx.conf中定义的client_max_body_size

问题描述 投票:0回答:1

我有通过django服务器公开的上传API。每当我尝试上传任何超过1MB的文件时,我都会收到来自nginx的错误消息“413实体太大”

我有一个名为nginx.conf的配置文件,它在目录client_max_body_size中将/etc/nginx/conf.d设置为75M,在/etc/nginx/nginx.conf文件中我将include /etc/nginx/conf.d/*.conf;作为http块中的最后一行然后为什么我看到此错误?

我跟着这个https://uwsgi-docs.readthedocs.io/en/latest/tutorials/Django_and_nginx.html?highlight=client_max_body_size用uWSGI和Nginx配置Django和webserver

nginx版本1.15.6

# /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;
}

和/etc/nginx/conf.d/中的site.conf文件

# 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
    }
}
nginx file-upload uwsgi django-2.1
1个回答
0
投票

确保将client_max_body_size添加到服务器块

http {
    server {
        client_max_body_size 20M;
        listen       80;
        server_name  test.com;
    }
}

最重要的是通过以下方式使您的配置工作:

sudo /etc/init.d/nginx reload
© www.soinside.com 2019 - 2024. All rights reserved.