2 mod_proxy_http
, a menos que você precise do cabeçalho do Host no cliente.
Eu não recomendo mod_jk clássico porque sua funcionalidade foi substituída por mod_proxy_ajp e como você mesmo disse, é necessário criar e manter esse módulo você mesmo.
Eu acho que mod_proxy_http é uma solução muito limpa e tira um pouco da imagem. No entanto, você deve estar ciente de algumas advertências para passar de ajp para http. Se você precisar acessar os cabeçalhos do servidor exatamente como foram recebidos pelo apache (incluindo o cabeçalho do Host), você deve usar o ajp. O JBoss verá uma nova solicitação http proveniente do apache, não do cliente original. Se você precisar apenas do IP remoto do cliente, ainda poderá obtê-lo com um cabeçalho especial que o apache pode definir nas novas solicitações. No entanto, se você estiver fazendo hospedagem virtual a partir da camada de aplicativos, é melhor fazer isso com o ajp.
No que diz respeito ao desempenho, o ajp ou o http exigirão algum processamento pelo JBoss e algum tráfego TCP do soquete local. Você terá que tentar ambos para ver qual é o mais eficiente, mas acho que no geral é uma porcentagem muito pequena da carga total do servidor. Http é um protocolo mais complicado e ajp é especificamente projetado para eficientemente entre web e aplicativos, então, teoricamente, o ajp provavelmente é melhor. Dito isso, descobri que muitas vezes o http é melhor suportado fora da linha do servidor de aplicativos do Tomcat.
Eu uso mod_proxy_ajp e mod_proxy_http e não tive nenhum problema.