Proxy : Why two places request structure is stored in upstream
Maxim Dounin
mdounin at mdounin.ru
Mon Nov 24 13:00:14 UTC 2014
Hello!
On Sat, Nov 22, 2014 at 01:44:06PM +0530, punit kandoi wrote:
> Hi,
>
> I was reading world famous tutorial by Emiller. Nginx guide to module
> development.
>
> I was going to ngx_http_proxy_handler() as described in tutorial.
>
> I seen request structure is stored in two places in upstream.
>
> u->pipe->input_filter = ngx_http_proxy_copy_filter;
> u->pipe->input_ctx = r; <<------
>
> u->input_filter_init = ngx_http_proxy_input_filter_init;
> u->input_filter = ngx_http_proxy_non_buffered_copy_filter;
> u->input_filter_ctx = r; <<------
>
> Whats the difference between two variables?
The "u->pipe->input_ctx" context is for ngx_event_pipe() code, to
be used by buffered input filters when needed.
The "u->input_filter_ctx" context is for non-buffered filters.
> If we want to take request structure from upstream in later stage before
> selecting server which value to be used?
Both of the above are wrong if you aren't writing an input filter.
--
Maxim Dounin
http://nginx.org/
More information about the nginx-devel
mailing list