2009-11-24 24 views
7

Ho un server Apache 2.2 davanti a un server tomcat 6. utilizzando mod_proxy_ajp su apache per le richieste proxy a tomcat. installazione abbastanza standard.apache proxy to tomcat keep alive confusion

Se devo disabilitare le connessioni keep-alive per i browser, come faccio?

Devo disabilitare le richieste HTTP keep-alive perché sospetto che alcuni dei miei utenti abbiano firewall che potrebbero far cadere una connessione keep-alive non attiva che causa problemi in modo casuale.

Ci sono vari bit e parti di configurazione "keep alive" sia su apache che su tomcat.

httpd.conf ha "KeepAlive Off" (che non sembra essere fare una differenza nel mio caso)

anche in httpd.conf in cui si imposta ProxyPass, si può avere un parametro "keepalive", ma questo si suppone solo di aiutare se ci sono proxy/firewall tra il mio apache e tomcat, che non c'è nel mio caso e non è il problema.

Tomcat per sé, il connettore http ha "KeepAliveTimeout" e "MaxKeepAliveRequests" Ma questo è solo per i connettori HTTP.

Il connettore tomcat ajp ha anche un "keepAliveTimeout", ma questo è per le richieste ajp provenienti da apache, non è sicuro se questo debba/fluire sulla richiesta HTTP reale dal browser ad apache.

Per completare il tutto c'è anche la differenziazione HTTP1.0 rispetto a HTTP1.1.

Quindi si confonde ... qualcuno può spiegare per favore?

+0

Mi chiedo perché si desidera disabilitare la funzione keep-alive. – Stephane

risposta

12

Ci sono (almeno) quattro "keep-alive".

  1. Livello HTTP keep-alive tra browser client e Apache. (Abilita più richieste client in una connessione HTTP/TCP. "KeepAlive" per configurare.)

  2. Livello TCP keep-alive tra il browser client e Apache. (Per evitare che la connessione venga chiusa dai firewall, invia periodicamente pacchetti vuoti (circa 2 ore di default in Linux) .Non conosco come configurare in Apache.)

  3. AJP layer keep-alive tra Apache e Tomcat. (consente a più richiesta Apache in una connessione AJP/TCP. “Max” e le opzioni “Smax” per “ProxyPass” per configurare.)

  4. livello TCP keep-alive tra Apache e Tomcat. (Uguale a 2, ma per i firewall tra Apache e Tomcat. Opzione “keepalive” per “ProxyPass” direttiva configurare.)

Quindi, la configurazione (“KeepAlive off”) potrebbe funzionare correttamente per i firewall all'interno client e Apache. Usa "% X" per la direttiva "LogFormat" per verificare se keep-alive (di tipo 1 sopra) è stato disabilitato.

A proposito, penso che la chiusura della connessione da parte dei firewall non causi seri problemi quando "KeepAliveTimeout" non è così grande. Se non hai problemi (a parte i messaggi di avviso), secondo me, potresti andartene così com'è.

Problemi correlati