[passenger + apache + ruby] Ошибка файла HTTP PUT с кодировщиком передачи: заголовок chunked при отключенной загрузке passengerbufferupload
envirment:
passenger 5.0.0
apache:2.4.6
passengerbufferupload off
Ошибка:
когда положить файл с помощью Transfer-Encoder: порция по запросу http, не может получить содержимое файла от Apache.
Журнал ошибок apache: Приложение 22178 stderr: [ 2018-06-13 10:17:35.9345 22203/0x0055710edcfa58(работник 1) request_handler/thread_handler.rb:219 ]: *** Предупреждение Passenger RequestHandler: размер заголовка HTTP превышен максимально.
расследовать
Я подтвердил заголовок трансфер-энкодера в пассажире по журналу печати. заголовок кодировщика передачи HTTP_TRANSFER_ENCODING:CHUNKED.
Я подтвердил источник пассажира тоже. В источнике при получении заголовка Transfer-Encoder он использовал "TRANSFER_ENCODING". поэтому не могу получить заголовок Transfer-Encoder.
источник:
phusion_passenger/utils/tee_input.rb
class TeeInput
CONTENT_LENGTH = "CONTENT_LENGTH".freeze
TRANSFER_ENCODING = "TRANSFER_ENCODING".freeze
phusion_passenger/request_handler/thread_handler.rb
TRANSFER_ENCODING = 'TRANSFER_ENCODING'.freeze
Я также подтвердил историю коммитов источника. с версии 4.0.60 до 5.0.0 измените вышеуказанные источники.(из TRANSFER_ENCODING = "HTTP_TRANSFER_ENCODING".freeze в TRANSFER_ENCODING = "TRANSFER_ENCODING".freeze)
commit log:
https://github.com/phusion/passenger/commit/0766bb303ad8009c6061206f3aafe231c4f1c3ff ⇒tee_input.rb
https://github.com/phusion/passenger/commit/eee48f95fd9db0fb5b24458f9fb0b84a25acc6ae ⇒thread_handler.rb
вопрос:
1. Я хочу знать причину изменения.
2. это проблема или нет?
1 ответ
Пассажирский автор здесь. Это было подтверждено как ошибка Пассажира. Пожалуйста, смотрите https://github.com/phusion/passenger/issues/2102.