mod_proxy - terminating backend connections

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

I'm facing an interesting issue with mod_proxy on Apache 2.2.22 (Ubuntu Precise, x86_64).

I have a backend application running on port 20 000. HTTP clients can keep connection open for many minutes, up to one hour. If the backend detects a change, it'll push it over HTTP on the established connection.

So we have:

HTTPS client -> web server/mod_proxy -> backend application running on localhost:20000

The problem is that when the HTTPS client terminates its connection, mod_proxy does not terminate the connection with the backend application. So if the backend application detects a change, it might try to push it to a terminated connection, but won't be aware of that. For testing purposes, if I restart Apache once the HTTPS connection is terminated by the client, the connection between mod_proxy and the backend application is of course terminated too and the backend application notices that the socket has been closed and can handle it - ie., not try to push its change and more importantly, know the response wasn't delivered properly.

I use the following configuration:

ProxyRequests Off
SetEnv force-proxy-request-1.0 1
SetEnv proxy-nokeepalive 1
SetEnv proxy-initial-not-pooled 1
ProxyPreserveHost On
ProxyPass /backendapp http://127.0.0.1:20000/backend/app disablereuse=On retry=0 connectiontimeout=5 timeout=3600

I've also done some test with smax=0, disablereuse, flushpackets, etc. with no luck.

So, my question is simple. How can we make mod_proxy terminate the connection with the backend immediately when the client terminates its own?

Thanks,

[Index of Archives]     [Open SSH Users]     [Linux ACPI]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Squid]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux