ОШИБКА: [_parse_http_data] неверный метод HTTP в блестящем приложении - PullRequest
0 голосов
/ 05 июля 2019

Когда я загружаю свое блестящее доменное имя приложения Docker в браузер, оно вылетает (вылетает), и я получаю этот «ОШИБКА: [_parse_http_data] неверный метод HTTP».

Я разработал веб-приложение, котороесостоит из блестящего приложения (имеет функцию входа в систему, подключенную к базе данных RMySQL), веб-сайта и базы данных mariadb.Я собрал их в файл docker-compose и протестировал его на своем локальном компьютере, и он отлично работает.Затем я приступил к их развертыванию в кластере Kubernetes в GCE, и это также оказалось успешным.Я использовал cloudflare для установки ssl-сертификата для блестящего домена приложения (т.е. trnddaapp.com).Теперь, когда я загружаю блестящий домен приложения в браузер, он добавляет https и успешно загружает приложение, но примерно через минуту оно вылетает (отключается).Я загрузил блестящий внешний IP приложения с http, и это не дает сбоя.

Самое близкое решение, к которому я пришел, это https://github.com/rstudio/shiny-server/issues/392, но, похоже, нет другого решения моей проблемы.Буду признателен, если кто-нибудь поможет мне решить эту проблему.

Это сообщение об ошибке, которое я получаю, когда проверяю журнал kubectl [имя модуля приложения], я получаю эту ошибку:

 ERROR: [_parse_http_data] invalid HTTP method
 ERROR: [_parse_http_data] invalid HTTP method
 ERROR: [_parse_http_data] invalid HTTP method

Я ожидаю, что приложение не будет аварийно завершено, когда блестящее приложениедомен (trnddaapp.com) добавляется с помощью https.

1 Ответ

0 голосов
/ 10 июля 2019

Давайте начнем с анализа сообщения об ошибке, в котором говорится:

[_parse_http_data]

Итак, мы знаем, что ваше приложение что-то получает, но оно не понимает, что это такое (возможно, оно искажено).HTTP / 1.0 или HTTP / 1.1 или даже двоичные данные) тогда у нас есть

invalid HTTP method

Теперь мы уверены, что это не вызов HTTP / 1.X, а поток (не распознанных) данных.Теперь мы знаем, что это не тот случай, так как он «развертывает» и «доставляет» службу, но что-то внутри него просто ломается.

Есть несколько вещей, которые могут происходить, так как он работает на вашем локальном компьютере.(где я предполагаю, что у него есть доступ к большему количеству ресурсов, особенно к памяти), это может быть проблемой распределения ресурсов, и когда он запускается в контейнере, возможно, что он освобождает выделенное ему количество ресурсов и разрывов (возможно, это библиотека, котораявызывается в режиме реального времени, который использует кусок памяти?), но мы не будем уверены, если не сможем отладить его внутри контейнера, поэтому можно ли добавить библиотеку отладки, которая записывает ваши запросы, чтобы увидеть, анализирует ли онавсе это и в какой-то момент останавливается и почему?Я знаю, что человек из R-Studio создал httpuv, который регистрирует каждый запрос, это можно сделать так:

devtools::install_github('rstudio/httpuv@wch-print-req')

И после этого, возможно, поделитесь выводом и посмотрите, почему приложение ведет себя так и убиваетсвой собственный сервис.

Я заранее очень благодарен, надеюсь, с этими журналами мы сможем пролить больше света на этот вопрос.

Еще раз спасибо!

-JP

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