Назад | Перейти на главную страницу

uwsgi + nginx + flask: восходящий поток преждевременно закрыт после загрузки файла

Я создал конечную точку на своей фляге, которая генерирует электронную таблицу из запроса к базе данных (удаленная база данных), а затем отправляет ее как загрузку в браузере. Flask не выдает ошибок. Увсги не жалуется.

Но когда я проверяю журнал ошибок nginx, я вижу много

2014/12/10 05:06:24 [ошибка] 14084 # 0: * 239436 восходящее соединение преждевременно закрыто при чтении заголовка ответа от восходящего потока, клиент: 34.34.34.34, сервер: me.com, запрос: «GET / download / export .csv HTTP / 1.1 ", восходящий поток:" uwsgi: //0.0.0.0: 5002 ", хост:" me.com ", реферер:"https://me.com/download/export.csv"

Я разворачиваю uwsgi как

uwsgi --socket 0.0.0.0:5002 --buffer-size=32768 --module server --callab app

моя конфигурация nginx:

server {
     listen 80;
     merge_slashes off;
     server_name me.com www.me.cpm;

     location / { try_files $uri @app; }
       location @app {
          include uwsgi_params;
          uwsgi_pass 0.0.0.0:5002;
          uwsgi_buffer_size 32k;
          uwsgi_buffers 8 32k;
          uwsgi_busy_buffers_size 32k;
     }

}

server {
      listen 443;
      merge_slashes off;
      server_name me.com www.me.com;

    location / { try_files $uri @app; }
       location @app {
          include uwsgi_params;
          uwsgi_pass 0.0.0.0:5002;
          uwsgi_buffer_size 32k;
          uwsgi_buffers 8 32k;
          uwsgi_busy_buffers_size 32k;
       }
}

Это проблема nginx или uwsgi, или обоих?

Вот что говорит uwsgi при запуске

    *** Starting uWSGI 2.0 (64bit) on [Wed Dec 10 15:20:23 2014] *** compiled with version: 4.6.3 on 20 January 2014 16:57:53 os: Linux-3.8.0-29-generic #42~precise1-Ubuntu SMP Wed Aug 14 16:19:23 UTC 
2013 nodename: me.com machine: x86_64 clock source: unix detected number of CPU cores: 1 current 
working directory: /home/server.py detected binary path: /usr/local/bin/uwsgi !!! no internal routing
 support, rebuild with pcre support !!! your processes number limit is 3781 your memory page size is 4096 bytes detected max file descriptor number: 1024 lock engine: pthread robust mutexes thunder lock: disabled (you can enable it with --thunder-lock) uwsgi socket 0 bound to TCP address 0.0.0.0:5002 fd 3 Python version: 2.7.3 (default, Sep 26 2013, 20:13:52)  [GCC 4.6.3] Python main interpreter initialized at 0x23632b0 python threads support enabled your server socket listen backlog is limited to 100 connections your mercy for graceful operations on workers is 60 seconds mapped 202864 bytes (198 KB) for 1 cores
    *** Operational MODE: single process *** WSGI app 0 (mountpoint='') ready in 1 seconds on interpreter 0x23632b0 pid: 30636 (default app)
    *** uWSGI is running in multiple interpreter mode ***

Вот что говорит uwsgi по запросу на скачивание

[pid: 30643 | app: 0 | req: 763/763] 33.33.33.33 () {56 переменных в 2982 байтах} [среда, 10 декабря 15:09:59 2014] GET /download/test.xlsx => сгенерировано 5564 байта за 392 мс через sendfile () (HTTP / 1.1 200) 7 заголовков в 510 байтах (0 переключает на ядро ​​0)