keepalive support on msie for POST requests

foobie nginx-forum at nginx.us
Tue Aug 4 16:00:38 MSD 2009


Hi,

Looking into aol pagetest reports from http://www.webpagetest.org/ and it shows that our application suffers from prematurely-closed keepalive connections in IE - whenever our RIA makes a POST request, the response contains a connection: close header. We use nginx as a load-balancing proxy, and it handles keepalives between the client and nginx.

I narrowed the problem down to this code in src/http/ngx_http_core_module.c

if (r->keepalive && r->headers_in.msie && r->method == NGX_HTTP_POST) {

            /*
             * MSIE may wait for some time if an response for
             * a POST request was sent over a keepalive connection
             */

             r->keepalive = 0;
        }

then found the thread at http://www.lexa.ru/nginx-ru/msg13560.html about this issue.

It looks like the msie bug was fixed in 2004 (http://support.microsoft.com/default.aspx?kbid=831167) and should not affect ie7 or ie8.

Is it possible to update nginx to allow POST keepalives for ie7/8 rather than penalise all msie users for a bug that was fixed 5 years ago?

I propose using headers_in.msie6 (which matches ie 6 and below) rather than the generic headers_in.msie:

if (r->keepalive && r->headers_in.msie6 && r->method == NGX_HTTP_POST) {

Thanks,
-- 
Adam

Posted at Nginx Forum: http://forum.nginx.org/read.php?2,4718,4718#msg-4718






More information about the nginx mailing list