Nginx may recieve data from Upstream Server even a request has not sent

Hagai Avrahami hagaia at qwilt.com
Tue Aug 4 06:47:09 UTC 2015


Hi,

I am using Nginx as reverse Proxy, during testing I have noticed
a situation Nginx receives response from upstream server even no request
has been sent yet from Nginx side.

The scenario is that the "Upstream Server" started to transfer data just
after
the connection has established without waiting to request from Nginx, Nginx
receives all the response
and does not send the Proxied request.

I have looked in the code and realized Nginx allows to receive response
even without request
*or* maybe the AND should be OR (* (!u->request_sent ||
ngx_http_upstream_test_connect(c) != NGX_OK))*

static void
ngx_http_upstream_process_header(ngx_http_request_t *r, ngx_http_upstream_t
*u)
{
    ssize_t            n;
    ngx_int_t          rc;
    ngx_connection_t  *c;

   ....





* if (!u->request_sent && ngx_http_upstream_test_connect(c) != NGX_OK)
{                        ngx_http_upstream_next(r, u,
NGX_HTTP_UPSTREAM_FT_ERROR);        return;    }*


Please Advise
Thanks
Hagai Avrahami
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx/attachments/20150804/3987e56b/attachment.html>


More information about the nginx mailing list