Hello! On Fri, Sep 23, 2016 at 12:48:39PM -0400, jtiq wrote:
> > > никто не издевается, а просто из деревни в этих модулях, тем более в > > README > > > ничего нет, кроме того как включить в конфиге модуль и какой > > параметр > > > передавать. > > > > Это ровно то, что нужно знать про сам модуль. Больше он ничего и > > не умеет: принимает параметр со спецификацией нужных диапазонов в > > соответствии с RFC2616, и возвращает запрошенное в виде 200-го ответа. > > > > > была бы нормальная документация, всё было бы норм, модуль частично > > хорош, но > > > нет длины файла в байтах целиком, при Range он передаётся в > > заголовке через > > > "/". Приходится изза этого юзать костыли, либо вовсе отказаться от > > данного > > > модуля. > > > > В range-_запросах_ длина ответа не передаётся. Длина через "/" > > передаётся в заголовке Content-Range в ответах на range-запросы. > > Т.к. модуль ответов на range-запросы не шлёт - он, соответственно, > > заголовка Content-Range не отправляет, и не должен. Он шлёт > > обычные 200-е ответы, и длины этих ответов отправляются так, как это > > положено для 200-х ответов, в заголовках Content-Length. > > > > Если вам зачем-то ещё нужна полная длина исходного ответа - > > протаскивайте её отдельно. В частности, если исходный ответ > > получен с бекенда, это можно сделать с помощью стандартной > > директивы add_header: > > > > add_header X-Original-Content-Length > > $upstream_http_content_length; > > > > Но и я бы предложил в очередной раз задуматься, зачем вы всем этим > > занимаетесь. > > полная длина НЕ исходного ответа, а файла целиком Для bytes-фильтра файл целиком и есть исходный ответ. > а нужен он для видео плеера, который работает в текущий момент на > заголовках, но не устраивает что запросы с кодом 206 не кэшируются > это нужно для кэша 200х ответов, передавая диапазон в УРЛ Т.е. у вас всё работает с нормальными range-запросами, но что-то где-то не кешируется, правильно? Где именно? Если не кешируется в nginx'е, то проблема решается с помощью правильной конфигурации кеша. Если на клиенте - то это вообще странно, т.к. исходя из задачи клиент - ваш собственный. > можно ли реализовать отдачу хотя бы оригинальных заголовков? Нельзя. Bytes-фильтр меняет ответ, и соответственно должен заменить служебные заголовки, в частности - должен заменить Content-Length ответа на новый. Как получить длину исходного ответа (она же - длина файла целиком) - я написал выше. -- Maxim Dounin http://nginx.org/ _______________________________________________ nginx-ru mailing list [email protected] http://mailman.nginx.org/mailman/listinfo/nginx-ru
