Apache mod_proxy no cierra los sockets de back-end lo suficientemente rápido

Apache mod_proxy no cierra los sockets de back-end lo suficientemente rápido

Estoy usando Apache + mod_proxy para proporcionar una aplicación de chat con Ejabberd. Está usando Bosh (XMPP sobre HTTP).

El problema es que cuando un usuario cierra su navegador, Apache mantiene la conexión abierta con el servidor back-end durante un tiempo (aproximadamente 1 minuto).

Me molesta porque Ejabberd puede darse cuenta de que el usuario se ha ido sólo cuando el socket está cerrado... por lo que el interlocutor del usuario no sabe lo que está pasando durante ese tiempo + el propio tiempo de espera de Ejabberd. Puedo cambiar el tiempo de espera de Ejabberd, pero no pude encontrar la manera de reducir el tiempo de cierre en el lado de Apache.


Ver la salida de netstatantes de que se cierre el navegador:

Navegador -> Apache mod_proxy

tcp        0      0 127.0.1.1:80            127.0.0.1:52361         TIME_WAIT
tcp        0      0 127.0.1.1:80            127.0.0.1:52380         ESTABLISHED
tcp        0      0 127.0.0.1:52380         127.0.1.1:80            ESTABLISHED

Apache mod_proxy -> Ejabberd

tcp        0      0 0.0.0.0:5280            0.0.0.0:*               LISTEN
tcp        0      0 127.0.0.1:5280          127.0.0.1:40972         ESTABLISHED
tcp        0      0 127.0.0.1:40953         127.0.0.1:5280          TIME_WAIT
tcp        0      0 127.0.0.1:40972         127.0.0.1:5280          ESTABLISHED

Ydespués de cerrar el navegador, durante decenas de segundos a aproximadamente 1 minuto...

Navegador -> Apache mod_proxy

tcp        0      0 127.0.1.1:80            127.0.0.1:52361         TIME_WAIT
tcp        1      0 127.0.1.1:80            127.0.0.1:52380         CLOSE_WAIT
tcp        0      0 127.0.0.1:52380         127.0.1.1:80            FIN_WAIT2

Apache mod_proxy -> Ejabberd

tcp        0      0 0.0.0.0:5280            0.0.0.0:*               LISTEN
tcp        0      0 127.0.0.1:5280          127.0.0.1:40972         ESTABLISHED
tcp        0      0 127.0.0.1:40953         127.0.0.1:5280          TIME_WAIT
tcp        0      0 127.0.0.1:40972         127.0.0.1:5280          ESTABLISHED

Mi configuración de Apache:

<VirtualHost *:80>
    ProxyRequests On
    ProxyPass /http-bind/ http://localhost:5280/http-bind/

    ServerName desktop
    <Proxy *>
            Order deny,allow
            Allow from all
    </Proxy>

    RewriteEngine Off

    [...]
</VirtualHost>

información relacionada