В настоящее время у меня проблема с настройкой производственного развертывания на AWS.
У меня есть экземпляр EC2 с NGINX / PHP / Laravel 5.1, который находится за AWS ELB.
Один из моих RESTAPI возвращает ответ размером от 1,2 до 1,6 МБ в конкретном сценарии (в большинстве общих сценариев он возвращает гораздо меньшие размеры ответов) и время ожидания вызовов.
Следующее сообщение об ошибке записывается в журнал
Тайм-аут восходящего потока (110: Тайм-аут соединения) при чтении ответа
заголовок из восходящего потока, клиент: xxxxxxxxxxx, сервер: xxxxxxxxxxx,
запрос: «POST / api / event / gallery HTTP / 1.1», upstream:
"fastcgi: // unix: /run/php/php7.0-fpm.sock", хост: "xxxxxxxxxxx"
1.2-1.6 МБ, по-видимому, не является большим размером ответа для объяснения времени ожидания.
Я подтвердил, что мой фактический вызов PHP (в нижней части стека вызовов) возвращается в течение 20 секунд.
Последующие исследования показали, что время ожидания AWS ELB составляет 60 секунд, и, вероятно, соединение закрывается.
https://www.cadence -labs.com / 2017/07 / фикс-Nginx-Тайм-аут 499-клиент-замкнутого-запрос /
Мой экземпляр AWS EC2 имеет тип m4.large. И я обеспокоен тем, почему производственная установка с проверенными компонентами, такими как AWS ELB, NGINX, будет иметь проблемы с эффективной обработкой данных размером 1.x mb. Вполне вероятно, что я делаю что-то не так, или я неправильно настроил всю систему развертывания. Пожалуйста, помогите с вашими предложениями.
Или, может быть, я слишком оптимистичен, и мне следует перейти к разбивке по моим ответам, чтобы удовлетворить большие размеры ответов. Но опять же, я не хочу разбивать на страницы, не понимая границ или не зная точно, когда я должен. Каков максимальный размер / предел для ответа REST API, после которого я должен рассмотреть разбиение на страницы?