Назад | Перейти на главную страницу

nginx возвращает ошибку TLS для больших файлов

У меня NextCloud 15 работает в кластере DigitalOcean Kubernetes. Когда я загружаю большой (> 1 ГБ) файл, я получаю сообщение об ошибке. Похоже, я сузил его до nginx, и мне интересно, как это исправить. Подробности следуют:

Настройка (как направляется запрос)

Что случается:

curl -u [redacted] https://[redacted]/[path to large file] В конце концов, после нескольких сотен МБ успеха, я получил следующее от curl:

curl: (56) GnuTLS recv error (-9): A TLS packet with unexpected length was received.

Если я настрою kubectl port-forward к службе или модулю NextCloud и укажите curl при этом загрузка будет успешной. Нет остановок, которые могли бы вызвать тайм-аут восходящего потока. Так что это не NextCloud или его сервис.

Если я настрою kubectl port-forward к службе или модулю nginx и укажите curl при этом я получаю такой же результат, как если бы я указал на DigitalOcean LoadBalancer (A TLS packet with unexpected length was received.). Так что, скорее всего, проблема связана с nginx.

Конфигурация

nginx работает под управлением TLSv1.2, ничего необычного в запуске SSLLabs. Это версия nginx / 1.15.6. Я выключил proxy-buffering через входную аннотацию и подтвердил, что он обновил nginx.conf с участием proxy_buffering off; для этого виртуального хоста. В логах nginx ошибок нет. Прошедшее время и объем загруженных данных варьируются от запуска к запуску.

Я видел в сети болтовню о том, что у nginx проблемы с HTTP / 2, поэтому я еще раз попробовал эти тесты, используя HTTP / 1.1. Те же результаты. Файлы меньшего размера и веб-интерфейс работают нормально, но загрузка больших файлов через curl, веб-интерфейс или клиент nextcloud не работают.

Есть ли известная проблема с nginx? Та же система, которая использовалась для работы с Apache в Docker, появилась только тогда, когда я перешел на nginx в Kubernetes.

Я улучшил nginx-ingress-controller развертывание в quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.22.0, который включает nginx / 1.15.8, и проблемы исчезли. Увидеть Журнал изменений для уточнения.