Hello! On Fri, Nov 10, 2017 at 05:11:50AM +0800, 胡聪 (hucc) wrote:
> Hi, > > >details: http://hg.nginx.org/nginx/rev/aeaac3ccee4f > >branches: > >changeset: 7043:aeaac3ccee4f > >user: Maxim Dounin <[email protected]> > >date: Tue Jun 27 00:53:46 2017 +0300 > >description: > >Range filter: allowed ranges on empty files (ticket #1031). > > > >As per RFC 2616 / RFC 7233, any range request to an empty file > >is expected to result in 416 Range Not Satisfiable response, as > >there cannot be a "byte-range-spec whose first-byte-pos is less > >than the current length of the entity-body". On the other hand, > >this makes use of byte-range requests inconvenient in some cases, > >as reported for the slice module here: > > > >http://mailman.nginx.org/pipermail/nginx-devel/2017-June/010177.html > > > >This commit changes range filter to instead return 200 if the file > >is empty and the range requested starts at 0. > > With this commit, the problem I mentioned is still unsolved. > http://mailman.nginx.org/pipermail/nginx-devel/2017-June/010198.html > http://mailman.nginx.org/pipermail/nginx-devel/2017-June/010178.html > > Because we can not ask that the backend must be nginx, and it is > nginx who convert ordinary request to a range request in slice > module. So is there a safe solution? There are at least a couple of them: - avoid using slice module if there are empty files and your backend return 416 on range requests to them; - change your backend to allow range requests on empty files. -- Maxim Dounin http://mdounin.ru/ _______________________________________________ nginx-devel mailing list [email protected] http://mailman.nginx.org/mailman/listinfo/nginx-devel
