当前位置: 首页 > 知识库问答 >
问题:

如果主体太大,Nginx/UWSGI/FLASK POST超时

公良照
2023-03-14
curl -H "Content-Type: application/json" -X POST http://10.4.5.168:5002/test -d '{"test": "test"}'

很好用。但是,如果我发布了一个更大的json文件,我会得到一个504:Gateway超时。

curl -H "Content-Type: application/json" -X POST http://10.4.5.168:5002/test -d @some_6mb_file.json

我感觉Nginx和Uwsgi之间的通信有一个问题,但我不知道如何解决它。

编辑:我跳入docker容器并手动重启nginx以获得更好的日志记录。我收到以下错误:

user  nginx;
worker_processes 1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


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

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
}
daemon off;

/etc/nginx/conf.d/nginx.conf:

server {
    listen 80;
    location / {
        try_files $uri @app;
    }
    location @app {
        include uwsgi_params;
        uwsgi_pass unix:///tmp/uwsgi.sock;
    }
    location /static {
        alias /app/static;
    }
}

/etc/nginx/conf.d/upload.conf:

client_max_body_size 128m;
client_body_buffer_size 128m;

共有1个答案

徐杰
2023-03-14

我在代理aiohttp(Python)应用程序时遇到了这种行为。

在我的例子中,在代理的位置块中,我需要禁用缓存:

从块中移除:

proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
  server {
    listen 80;
    location / {
        try_files $uri @app;
    }
    location @app {
      proxy_set_header Host $http_host;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_redirect off;
      proxy_buffering off;
      proxy_pass http://myapp;
    }
    location /static {
        alias /app/static;
    }
}
 类似资料:
  • 我的应用程序有以下堆栈: Nginx(1.4.6) UWSGI(1.9.17.1-Debian(64bit)) 烧瓶 Python 3.4 NGINX重启后的问题在一段时间内(几分钟)都能正常工作。在此期间之后,我收到一个“504网关超时”错误。 NGINX日志: *13从上游读取响应标头时上游超时(110:连接超时),客户端:86.123.39.44,服务器:app.fc.com,请求:“get

  • 我发现很难找到有关这方面的资料。会是什么?我如何解决这个问题?有哪些可能的修复方法? UWSGI日志文件 时钟来源:unix检测到CPU核数:4当前工作目录:/home/pi检测到二进制路径:/usr/local/bin/uwsgi!!!没有内部路由支持,重建与pcre支持!!!*警告:您在没有主进程管理器的情况下运行uWSGI进程数限制为7336内存页大小为4096字节检测到最大文件描述符号:6

  • 请求正文太大,超过了允许的最大限制。 我知道我可能需要削减json,但还有其他建议吗?(比如在某个地方增加消息大小?)

  • 我遵循本教程,但我有一个问题,我得到了502 Nginx错误。 教程链接 我检查了错误日志,上面写着 uwsgi.log ImportError:没有名为khcards的模块。wsgi 我的uwsgi文件是这样的 我的nginx。形态 服务器{监听80;server_name域www.domain.co.uk;根 /var/www/example.com/src/khcards;access_lo

  • Supported tags and respective Dockerfile links python3.9, latest (Dockerfile) python3.8, (Dockerfile) python3.7, (Dockerfile) python3.6 (Dockerfile) Discouraged tags python3.8-alpine (Dockerfile) To l