SocketTimeoutException: чтение истекло с конфигурацией NGINX - PullRequest
0 голосов
/ 26 марта 2020

У меня есть следующие настройки:

curl >> NGINX >> Java Client >> ELB >> NGINX >> Java Server

Регулярные запросы работают, как и ожидалось, запросы старше 60 секунд завершаются с ошибкой SocketTimeoutException: Read timed out. Я попытался отладить шаг за шагом:

  • Сервер отвечает 200 и занимает около 100 с
  • Nginx перед журналами сервера 499 (клиент прервал соединение)
  • Java Клиент и Nginx журнал 400 : SocketTimeoutException: тайм-аут чтения

Я попытался уменьшить proxy_read_limit обоих Nginx, что привело к 504 Gateway timeout. ELB ограничение не более 240 секунд.

У меня нет доступа к клиентскому приложению, поскольку оно является .jar, можно ли предположить, что проблема связана с настройкой тайм-аута в .jar, и поэтому я могу не решить проблему самостоятельно? Кроме того, мне сложно понять, кто именно является клиентом в этом сценарии.

1 Ответ

0 голосов
/ 26 марта 2020

Да, это звучит так, как если бы для параметра времени ожидания в «Java Client» было установлено значение меньше 100 с. Если клиент хорошо написан, вы можете изменить параметр тайм-аута через параметры или файлы конфигурации. Невозможно сказать больше, не зная деталей.

Вы можете обойти проблему, заставив сервер отправлять "фиктивные" пакеты, которые делают соединение активным для клиента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...