Multiple subrequest in handler

Igor Sysoev is at rambler-co.ru
Tue Sep 11 18:36:02 MSD 2007


On Tue, Sep 11, 2007 at 04:23:45PM +0200, Adrian Perez de Castro wrote:

> I am quoting myself, just for the sake of completeness and share my
> findings with the rest of the list :D
> 
> El Mon, 10 Sep 2007 14:54:15 +0200
> Adrian Perez de Castro <adrianperez at udc.es> escribi??:
> 
> > I took another look at the addition module, and it seems [...] to
> > reorder buffers in the output chain [...]
> 
> After some investigation (correct me if I am wrong), I found that the
> addition filter does that because when acting as a filter it has access
> to the full contents of the output chain (?), but my content handler
> only has access to the buffer it generates.
> 
> I am considering the technique Manlio Perillo in a previous post.
> (If you want to check the original post, here you have a link to it:
> http://article.gmane.org/gmane.comp.web.nginx.english/1511). Quoting
> him:
> 
> >> When sending the response body, we have two choices (but I'm not
> >> sure):
> >>  - write the entire chain links and then pass it to the output filter
> >>    (so we buffer the entire response)
> >>  - create a partial response, create a buffer and call the output
> >>    filter, then create a new partial response, create a new buffer
> >>    and call the outputfilter, and so on.

Yes.

> I think I can fix up things by using the second one, so I can do:
> 
>   1. Subrequest for the header OR partial response with built-in header.
>   2. Partial response with file listing table.
>   3. Subrequest for the footer OR partial response with built-in footer.
> 
> I will be restructuring the code a bit to better accommodate to this
> approach. Will this way subrequest output placed at the right places? I
> am aware that I should try to understand better how Nginx handles
> output, but in the meanwhile maybe you could give some advice...
> 
> As always, comments are welcome. Thank you in advance.

You should do

subrequest(header)
listing
subrequest(foote)

Does it produce correct order of parts ?


-- 
Igor Sysoev
http://sysoev.ru/en/





More information about the nginx mailing list