`преждевременно закрытое соединение вверх по течению` с 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.

У кого-нибудь есть какие-нибудь подсказки? Спасибо

0 ответов

Другие вопросы по тегам