Re: Варнинги после перехода на PHP 8
Evgeniy Berdnikov Wrote: --- > Я бы предложил проверить эти выводы на скрипте-однострочнике, > выводящем > "304 Not Modified" и пустое тело. Для вариантов с Content-Length и > без. Спасибо, стоящая идея! Всё-таки движок передавал данные - протестировал кусок кода в простейшем скрипте - все работает правильно. Тогда начал "перелопачивать" код движка и нашёл, что выше функции header() передаются данные. Есть одно echo. Если проверку с выводом header() делать до этого echo - все работает без предупреждений от Nginx. Сам виноват - думал, данные обязательно будут передаваться после header(), а разрабы движка всунули данные до фунции header(). Posted at Nginx Forum: https://forum.nginx.org/read.php?21,291263,291307#msg-291307 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Варнинги после перехода на PHP 8
Разобрался более детально. Движок сайта заголовок Content-Length не передает вообще. Я добавляю этот заголовок сразу после того места, где отдается заголовок 304 Not Modified и с помощью CURL смотрю заголовки - он появляется в выводе заголовков, котента нет. Но варнинг остается. Я ставлю Content-Length произвольного размера - он появляется в выводе заголовков варнинг не исчезает, котента нет. Но есть одна странность - этот варнинг возникает только тогда, когда версия протокола - HTTP/1.1 и ниже. Если протокол версии HTTP/2.0 - варнинга нет. Можно резюмировать то, что я нарыл: Заголовок Content-Length от движка Nginx-су не передается. Никаких лишних данных движок не передает. Ошибка возникает только в том случае, когда протокол HTTP/1.1 и ниже. Почему Nginx считает, что ему передали этот заголовок? И почему только на HTTP/1.1? Баг Nginx? Posted at Nginx Forum: https://forum.nginx.org/read.php?21,291263,291302#msg-291302 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Варнинги после перехода на PHP 8
Разобрался более детально. Движок сайта заголовок Content-Length не передает вообще. Я добавляю этот заголовок сразу после того места, где отдается заголовок 304 Not Modified и с помощью CURL смотрю заголовки - он появляется в выводе заголовков, котента нет. Но варнинг остается. Я ставлю Content-Length произвольного размера - он появляется в выводе заголовков варнинг не исчезает, котента нет. Но есть одна странность - этот варнинг возникает только тогда, когда версия протокола - HTTP/1.1 и ниже. Если протокол версии HTTP/2.0 - варнинга нет. Можно резюмировать то, что я нарыл: Заголовок Content-Length от движка Nginx-су не передается. Никаких лишних данных движок не передает. Ошибка возникает только в том случае, когда протокол HTTP/1.1 и ниже. Почему Nginx считает, что ему передали этот заголовок? И почему только на HTTP/1.1? Баг Nginx? Posted at Nginx Forum: https://forum.nginx.org/read.php?21,291263,291300#msg-291300 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Варнинги после перехода на PHP 8
Что я выяснил. Скрипт сайта, в ответ на запрос с заголовком "If-Modified-Since" отдает Nginx-су заголовок "Content-Length 0" и не нулевые данные. Отсюда и варнинг. Скрипт делает все верно, и Nginx отвечает верно. Но как убрать это предупреждение? Posted at Nginx Forum: https://forum.nginx.org/read.php?21,291263,291278#msg-291278 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Варнинги после перехода на PHP 8
Вот ответ сервера в сервисе "Проверка ответа сервера" Яндекса при отправке заголовка If-Modified-Since: Код статуса HTTP304 Not Modified Время ответа сервера109 мс IP сайта- Размер страницы 0 Б И в логах есть варнинг. А это ответ без заголовка If-Modified-Since (и без варнинга): Код статуса HTTP200 OK Время ответа сервера142 мс IP сайта- Кодировка UTF-8(unicode-1-1-utf-8, UTF8) Размер страницы 118,71 КБ Все работает правильно. Попробую дебаг в Nginx включить, посмотреть, что он покажет. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,291263,291270#msg-291270 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Варнинги после перехода на PHP 8
Спасибо, что "ткнули носом"! Общее направление я понял, буду разбираться. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,291263,291269#msg-291269 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: Варнинги после перехода на PHP 8
Пока не могу сообразить, как подойти к решению этой задачи. До чего докопался - поисковик делает запрос на сайт с заголовком If-Modified-Since или If-None-Match и если контент страницы не изменился, движок отдает код "304 Not Modified" - именно в этом случае возникает ошибка. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,291263,291267#msg-291267 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Варнинги после перехода на PHP 8
Добрый день! После перехода на 8 версию PHP Nginx стал сыпать предупреждениями: *84085 upstream sent more data than specified in "Content-Length" header while reading upstream, client: 66.249.76.60, server: . Прчем, предупреждения появляться только после посещения страниц сайта поисковиками (в основном - ботами Google). В сети нашел совет отключить буферизацию: proxy_buffering off; Но не думаю, что это верное решение. Возможно, на этом форуме мне помогут решить эту проблему? Posted at Nginx Forum: https://forum.nginx.org/read.php?21,291263,291263#msg-291263 ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru