HTTPConnectionPool (host = 'xxxx', port = y): тайм-аут чтения. (чтение тайм-аута = нет) на nginx сервере? - PullRequest
0 голосов
/ 23 января 2020

Из моего скрипта python есть несколько вызовов API, и API находятся в одном приложении! Я использую django Framework! Через python3 manage.py runserver все работало нормально!

Но в centos7 VM с nginx сервером, супервизором, gunicorn не работает после вызова третьего API!

Появилась эта ошибка:

The complete exception is provided below:
<class 'requests.exceptions.ReadTimeout'>
HTTPConnectionPool(host='x.x.x.x', port=y): Read timed out. (read timeout=None)

В nginx регистрируется только эта ошибка:

[error] 12020#12020: *133 upstream prematurely closed connection while reading response header from upstream, client:

Нужна помощь

1 Ответ

0 голосов
/ 05 февраля 2020

Наконец-то я нашел решение!

На самом деле это было время ожидания gunicorm и nginx.

Мой сценарий занимает больше 30 секунд, поэтому обновите мой файл конфигурации gunicorn!

Вот конфигурация:

[program:project]
command = gunicorn -c /opt/project/gunicorn_config.py project.wsgi -t 300
directory = project directory
user = user

Также в конфигурацию nginx необходимо добавить следующие настройки прокси:

location / {
    proxy_pass http://127.0.0.1:8001;
    proxy_set_header X-Forwarded-Host $server_name;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-Proto $scheme;
    add_header P3P 'CP="ALL DSP COR PSAa PSDa OUR NOR ONL UNI COM NAV"';
    proxy_read_timeout 300s;
    proxy_connect_timeout 300s;
}

Спасибо! Надеюсь, это поможет, если кто-то столкнется с такой же проблемой!

...