LINUX.ORG.RU

apache2: Response header name '2019-03-21 19' contains invalid characters.

 , ,


0

2

Доброго времени суток! Появилась необходимость перенести старый сервер на новый дистрибутив, так как старый давно уже как лет шесть не поддерживается и не обновляется, плюс ко всему перенос на виртуалку. На серверe запущен apache2 и mysql-server, web приложение написано на perl. Сам дистибутив suse SLES SP 10 (kernel 2.6). Первый перенос сделал на debian 9.7, со всеми необходимыми библиотеками для работы скриптов и с сохранением всех путей директорий как на старом сервере, остался apache2, базу использовал mariadb. После недолгих танцев с бубном сервер завелся, web приложение заработало, но все же некоторые менюшки не работаю. В логах apache2:

 Response header name '2019-03-21 19' contains invalid characters, aborting request, referer:

Проблема заключается в том что формат даты передается неправильно, в заголовке передается текущая дата и часы. После даты идет текущий час, то есть время режется. Какой формат должен передаваться я не знаю, но думаю что только дата без времени.

Долго мучился, ничего не нашел, подумал что может это глюк на самой debian и поставил openususe leap 15, так как изначально сервер был на suse. В итоге тоже самое, пока грешу на то что за эти годы интерпретатор perl перетерпел изменения в функциональности библиотек, которые использует web приложение, что чисто морально ну никак не могу принять этот факт. И очень надеюсь что проблема где-то таится в apache2, так как я не программист на perl и сложно будет разобрать код. Возможно кто-то встречался с подобной проблемой и сможет поделится опытом по ее решению.

PS: Благодарю за внимание.


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

anonymous
()
Ответ на: комментарий от symon2014

symon2014

В качестве бреда двойной апостроф.

А в чем разница между двойными и одинарными? Если я не ошибаюсь в интерпретируемых языка например как python разницы особой нет. Дата режется, не помещается полностью в форма который должен передаваться, либо захватывает излишки. Я не знаю что эти сообщением сервер хочет передать.

Eqvoc
() автор топика
Ответ на: комментарий от anonymous

anonymous

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

В логах старого сервера я ничего не увидел. Пытался включить режим debug, прописал в httpd.conf «LogLevel debug», безрезультатно, ничего не видно, либо я не там прописываю режим debug. Подскажите как вообще это просмотреть поле? Какие еще есть способы что бы проследить за этим сообщением?

Eqvoc
() автор топика
Ответ на: anonymous от Eqvoc

ну, я исхожу из предположения, что в апаче могли исправить баг, в результате чего он стал правильно валидировать заголовки. А сама проблема вызвана некорректным формированием ответа в perl скриптах.

Подскажите как вообще это просмотреть поле?

хотя бы выполнить команду вида

curl -I http://...
указав ссылку на старый сервер и посмотреть, что приходит в заголовках

anonymous
()
Ответ на: комментарий от anonymous

При использовании curl -I получаю вот такой вывод. Проверял на всех страничках, заголовок один и тот же.

HTTP/1.1 200 OK
Date: Sun, 24 Mar 2019 06:56:51 GMT
Server: Apache/2.2.0 (Linux/SUSE)
Transfer-Encoding: chunked
Content-Type: text/html; charset=utf-8
Eqvoc
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.