Gunicorn получает сообщение ERR_INCOMPLETE_CHUNKED_ENCODING на POST - PullRequest
0 голосов
/ 27 ноября 2018

Я перевожу свое приложение флеш-сервера в докер-контейнер с docker-compose и испытываю проблему после того, как я транслирую вывод в текстовую область (раньше этого не происходило, когда мое приложение флешки было размещено на Linux-боксе).

Когда я запускаю событие (нажатие кнопки), оно отправляет запрос ajax в приложение фляги, приложение фляги непрерывно передает поток обратно клиенту, все это работает (и я вижу поток в моем текстовом поле),

Проблема возникает, когда запрос выполнен (xhr.readyState == XMLHttpRequest.DONE), я получаю usb.js:521 POST http://myserver:8000/stream net::ERR_INCOMPLETE_CHUNKED_ENCODING 200 (OK) и текстовое поле становится пустым (ранее я вижу весь текстовый вывод, но когда завершается ошибка ajax, и текстовое поле становится пустым).

Я читал онлайн, и многие говорили, что обновление nginx исправляет эту ошибку.Так что в настоящее время в моем Docker нет прокси-сервера, я использую его только с Gunicorn. Нужно ли мне добавлять прокси, такой как nginx, в docker-compose?Я думал, что одного GUnicorn будет достаточно для моего док-контейнера?

Я также читал это https://rhodesmill.org/brandon/2013/chunked-wsgi/

Это, кажется, моя проблема, но я не уверен, как это могло бытьисправлено.

Вот мой docker-compose:

version: "2.1"
services:
  db:
    image: mysql:5.7
    env_file: .env
    ports:
      - "3306:3306"
    environment:
      - MYSQL_DATABASE=mydb
      - MYSQL_USER=user
      - MYSQL_PASSWORD=${MYSQL_PASSWORD}
      - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
    volumes:
      - ./db:/docker-entrypoint-initdb.d/
      - my-datavolume:/var/lib/mysql

  app:
    build: ./
    user: root
    ports:
      - "2222:22"
      - "5000:5000"
      - "5005:5005"
    depends_on:
      - "db"
    command: sh -c "/usr/local/bin/upstart.sh"
    volumes:
      - ./upstart.sh:/usr/local/bin/upstart.sh

volumes:
  my-datavolume:
...