`преждевременно закрытое соединение вверх по течению` с dokku и hasura
При отправке 2,7 МБ полезной нагрузки в Hasura (меньшая полезная нагрузка работает нормально), размещенная на Dokku через nginx, я получаю 502 клиенту и внутреннюю ошибку ниже:
root@api-dev:/# dokku nginx:error-logs hasura
[error] 44443#44443: *19 upstream prematurely closed connection while reading response header from upstream, client: 103.75.204.31, server: xxx.yyy.net.au, request: "POST /v1/graphql HTTP/1.1", upstream: "http://172.17.0.3:8080/v1/graphql", host: "xxx.yyy.net.au"
172.17.0.3 - это приложение hasura:
root@api-dev:/# dokku network:report hasura
=====> hasura network information
Network attach post create:
Network attach post deploy:
Network bind all interfaces: false
Network web listeners: 172.17.0.3:5000
root@api-dev:/# dokku nginx:report hasura
=====> hasura nginx information
Nginx access log format:
Nginx access log path: /var/log/nginx/hasura-access.log
Nginx bind address ipv4:
Nginx bind address ipv6: ::
Nginx client max body size:
Nginx disable custom config: false
Nginx error log path: /var/log/nginx/hasura-error.log
Nginx global hsts: true
Nginx computed hsts: true
Nginx hsts:
Nginx hsts include subdomains: true
Nginx hsts max age: 15724800
Nginx hsts preload: false
Nginx proxy buffer size: 4096
Nginx proxy buffering: on
Nginx proxy buffers: 8 4096
Nginx proxy busy buffers size: 8192
Nginx proxy read timeout: 60s
Nginx last visited at: 1619572196
Nginx x forwarded for value: $remote_addr
Nginx x forwarded port value: $server_port
Nginx x forwarded proto value: $scheme
Nginx x forwarded ssl:
root@api-dev:/#
В контейнере hasura ошибок нет, последняя строка в журналах контейнера является нормальной.
{"type":"startup","timestamp":"2021-04-28T00:38:43.470+0000","level":"info","detail":{"kind":"server","info":{"time_taken":0.882082376,"message":"starting API server"}}}
Я рассчитал время загрузки полезной нагрузки от 18 до 29 секунд, чтобы показать указанную выше ошибку. Dokku работает на минимальном Vultr VPS (1 ГБ оперативной памяти).
Я увеличил максимальный размер запроса nginx до 50 МБ, следуя этим инструкциям: dokku: 413 Request Entity Too Large.
Я пробовал отправлять через скрипт узла, а также через Postman, и я получаю ту же ошибку, поэтому проблема не в восходящем клиенте - это должно быть что-то между Postman и nginx.
Может ли быть прокси на стороне Vultr, который разрывает соединение? Здесь нет балансировщиков нагрузки, прокси, сетевых конфигураций и т. Д. - только VPS.
У кого-нибудь есть какие-нибудь подсказки? Спасибо