Форум программистов, компьютерный форум, киберфорум
DevOps, облачные платформы
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
21 / 21 / 5
Регистрация: 26.12.2013
Сообщений: 177

Не могу настроить работу таймаутов в nginx на EC2 инстансе

15.10.2023, 21:53. Показов 1210. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток всем.
Помогите пожалуйста разобраться.

У меня есть веб сервер на django. Он работает в связке с nginx. Все это крутится на EC2 instance. К ниму привязан Elastic IP address. На фото настройки Elastic IP address.

На сервере есть запросы, которые выполняются довольно долго. Это связано с внешними api и сократить время их выполнения довольно сложно.

В общем в этом и проблема. Мне нужно увеличить timeout-ы, что-бы сервер успевал обработать запрос, отдать данные в nginx и nginx отправлял их клиенту. Сейчас он выкидывает ошибку 502 примерно через минуту ожидания ответа. Этот же запрос при меньшем количестве данных выдает корректный результат, так что я не думаю, что проблема в кривом коде. При установки таймаутов менее минуты, они отрабатывают корректно. Т.е. скорее всего связь обрывает кто-то другой.

Оперативки на сервере всего гиг, но при обработке данного запроса, free показывал, что занято не больше 800 Мб.

Настройки следующие (server_name изменен на 1.2.3.4):

/etc/nginx/nginx.conf
Code
1
2
3
4
5
6
http {
        proxy_connect_timeout 300s;
        proxy_read_timeout 300s;
        proxy_send_timeout 300s;
        send_timeout 300s;
}
/etc/nginx/sites-available/web
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
server {
    server_name 1.2.3.4;
 
    location = /favicon.ico { access_log off; log_not_found off; }
    location /static/ {
        root /home/ubuntu/web;
    }
    location /media/ {
        root /home/ubuntu/web;
    }
    location / {
        include proxy_params;
        proxy_pass [url]http://unix:/run/gunicorn.sock;[/url]
    }
}
Ссылка в каталог /etc/nginx/sites-enabled/ сделана, все работает.

В лог nginx пишет следующее:

2023/10/15 13:44:54 [error] 2129#2129: *1 upstream prematurely closed connection while reading response header from upstream, client: 178.197.218.229, server: 1.2.3.4, request: "POST /ajaks_parse_text/ HTTP/1.1", upstream: "http://unix:/run/gunicorn.sock:/ajaks_parse_text/", host: "1.2.3.4", referrer: "http://1.2.3.4/text_parsing/"


Могут ли AWS сети каким-нибудь образо обрывать слишком долгие запросы?
Может кто знает, куда вообще копать?
Миниатюры
Не могу настроить работу таймаутов в nginx на EC2 инстансе  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.10.2023, 21:53
Ответы с готовыми решениями:

Не могу настроть правильную работу timeout в nginx
Добрый день всем. Помогите пожалуйста разобраться. У меня есть веб сервер на django. Он работает в связке с nginx. На сервере...

Не могу настроить nginx для сервера написанного на go который работает с шаблонами
Здравствуйте. Я не программист, а так программирую для себя так что прошу это учитывать. Я попытаюсь максимально подробно описать свою...

openstm32 не могу настроить на работу с st-link
Здравствуйте! использую System Workbench for STM32 (порт еклипса) подключил st-link V2 в настройках дебага прописал, но при выполнении...

5
Нарушитель
110 / 86 / 32
Регистрация: 10.05.2023
Сообщений: 323
15.10.2023, 23:54
Настройки таймаутов, которые вы указали в файле /etc/nginx/nginx.conf, выглядят правильно. Однако, у вас также есть настройки таймаутов в файле /etc/nginx/sites-available/web, и я заметил, что вы используете неправильный синтаксис для параметра proxy_pass. Вместо http://unix:/run/gunicorn.sock; вам следует использовать unix:/run/gunicorn.sock;. Пожалуйста, исправьте эту часть конфигурации.
Относительно ошибки 502, которую вы получаете, она может быть вызвана различными причинами. Одна из возможных причин - это превышение таймаута на стороне Gunicorn или Django. Убедитесь, что у вас правильно настроены таймауты в Gunicorn и Django, чтобы они соответствовали вашим настройкам в Nginx.
Также, AWS может прерывать слишком долгие запросы, если они превышают установленные ими таймауты. Убедитесь, что ваши запросы не превышают максимально допустимое время выполнения для AWS.
1
21 / 21 / 5
Регистрация: 26.12.2013
Сообщений: 177
16.10.2023, 00:09  [ТС]
Цитата Сообщение от ARTURK16 Посмотреть сообщение
Вместо http://unix:/run/gunicorn.sock; вам следует использовать unix:/run/gunicorn.sock;. Пожалуйста, исправьте эту часть конфигурации.
Выдает ошибку:
Code
1
2
3
sudo nginx -t
nginx: [emerg] invalid URL prefix in /etc/nginx/sites-enabled/web:13
nginx: configuration file /etc/nginx/nginx.conf test failed
Поэтому пока что оставлю как есть. В остальном спасибо за советы. Продолжу искать проблему дальше.
0
Нарушитель
110 / 86 / 32
Регистрация: 10.05.2023
Сообщений: 323
16.10.2023, 00:18
Ошибка, которую вы получаете, связана с неправильным синтаксисом в файле конфигурации Nginx /etc/nginx/sites-enabled/web на строке 13.
Пожалуйста, убедитесь, что у вас правильно указана директива proxy_pass в этом файле. Она должна иметь следующий формат:
Code
1
proxy_pass http://unix:/run/gunicorn.sock;
Убедитесь, что у вас нет лишних символов [url] вокруг URL. После внесения изменений, попробуйте снова выполнить команду sudo nginx -t, чтобы проверить правильность синтаксиса файла конфигурации.
Если у вас все еще возникают проблемы, пожалуйста, предоставьте содержимое файла /etc/nginx/sites-enabled/web, чтобы я мог более точно определить причину ошибки и помочь вам с ее исправлением
0
21 / 21 / 5
Регистрация: 26.12.2013
Сообщений: 177
16.10.2023, 01:26  [ТС]
Цитата Сообщение от ARTURK16 Посмотреть сообщение
Она должна иметь следующий формат:
А что тогда у меня неправильно было?


П.С. А понял. Это при копировании на форум [url] автоматом подставился)

Добавлено через 25 минут
В общем, проблема решина. Нужно было править конфиг gunicorn (/etc/systemd/system/gunicorn.service)

Совсем про него забыл. Спасибо за помощь.
1
Нарушитель
110 / 86 / 32
Регистрация: 10.05.2023
Сообщений: 323
16.10.2023, 09:19
Цитата Сообщение от sashok991 Посмотреть сообщение
Совсем про него забыл. Спасибо за помощь.
Не за что!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.10.2023, 09:19
Помогаю со студенческими работами здесь

Не могу настроить стабильную работу роутеров
Здравствуйте. У меня проблема. Не могу настроить стабильную работу роутеров, у меня их около 10ти в сети.Захожу в настройки 2ого вылезают...

Entity Framework Не могу настроить работу DropCreateDatabaseIfModelChanges
Добрый день! Есть класс модели: namespace CodeFirstClasses { //Класс модели данных public class Model { }...

Не могу обновить Windows 8. (Не удалось настроить обновления). Через 5 часов на работу!
Доброго времени суток, форумчане! Помогите решить проблему, очень срочно, через 5 часов на работу, нужен этот комп! Всё было...

Как настроить работу vpn на работу в одном приложении? ( teamspeak 3)
Нужна помощь по настройке впн для работы в одном приложении , знаю что это делается через маршрутизацию , но очень бы хотелось получить...

Настроить rewrite в nginx
Дело в том что на сайте стоял мод чпу и генерировал ссылки вида: moisait.ru/forum-multfilm-f=21.html в nginx был прописан...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru