Disable keep_alive based on specific useragent

Robert Mueller robm at fastmail.fm
Mon Nov 17 04:52:46 UTC 2014

Due to a bug in iOS 8, I want to disable http keep-alive for all iOS 8
useragents for now.


I can't see a way to do this in nginx at the moment.

The docs for keep_alive disable only talk about msie6 and safari.


And indeed, checking the code shows that it's a bitfield with only a few
fixed possible values.

All our requests are proxied to a backend, and I obviously could easily
detect the user-agent on the backend, but I can't see any way to
indicate back to nginx that it should drop the connection to the client
after returning the response (e.g. there's no x-accel-disable-keepalive
or something like that).

I had a quick look through the code, and can't see anything obvious. No
configuration options, no upstream response headers, nothing even in the
nginx lua integration that could do this.

Am I missing something? It's a bit annoying that keepalive_disable can't
take an arbitrary regexp if people really want...

Rob Mueller
robm at fastmail.fm

More information about the nginx mailing list