uWSGI + nginx: запрос зависает, если указана длина содержимого

Я пытаюсь настроить действительно простой проект uWSGI + nginx. Я столкнулся со следующими проблемами

  1. wsgi.input кажется пустым (что я обнаружил, пытаясь получить переменные POST)

  2. curl http://localhost:8080/parsings работает нормально, но curl http://localhost:8080/parsings --header "Content-Length:1" зависает а потом возвращается curl: (52) Empty reply from server

  3. На nginx ничего не появляется error.log, uWSGI тоже ничего не регистрирует. Похоже, что запрос не идет нигде рядом с сервером.

Вот конфиги

nginx.conf

user www-data;
worker_processes auto;
pid /run/nginx.pid;

events {
    worker_connections 768;
}

http {
    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;

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
    ssl_prefer_server_ciphers on;

    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/*;

    proxy_buffers 8 32k;
    proxy_buffer_size 64k;
    proxy_connect_timeout   10;
    proxy_send_timeout      15;
    proxy_read_timeout      20;
}

сайты с поддержкой / MySite

server {
    listen 127.0.0.1:8080;
    server_name myproject.local;
    client_max_body_size 2M;

    location / {
        include         uwsgi_params;
        uwsgi_read_timeout 300;
        uwsgi_pass      unix:///tmp/my_project.sock;
    }
}

uwsgi.ini

[uwsgi]
module = wsgi:application

master = true
processes = 5
static-map = /static/=/home/breln/projects/myproject/static
socket = /tmp/my_project.sock
chmod-socket = 777
chown-socket = www-data
vacuum = true

die-on-term = true

Nginx - это 1.11.8 (такая же проблема появилась с 1.10.2). uWSGI - 2.0.14

Любые намеки приветствуются.

1 ответ

Возможно, это связано с тем, что uWSGI не буферизует / не читает данные POST из Nginx, если только ваше приложение WSGI не пытается использовать данные POST в обработчике запросов:

Сброс соединения Nginx, потеря ответа от uWsgi

Другие вопросы по тегам