Você precisa usar um único host virtual para lidar com ambos!
O Apache faz a correspondência dos vhosts com base no cabeçalho do host HTTP. Como o nome do host é o mesmo, independentemente de um cliente estar acessando o redmine ou o jenkins, ambos devem no mesmo vhost.
O que está acontecendo com sua configuração atual é que o Apache está determinando qual vhost deve ser correspondido assim que ele vir o cabeçalho do Host. Como 'j' vem antes de 'r' em ordem alfabética, ele está dando prioridade ao seu arquivo vhost jenkins, mesmo que ambos correspondam.
Você está tentando corresponder com base no URI da solicitação e no proxy de acordo.
A diretiva <Proxy>
já tem essa funcionalidade incorporada!
Você pode usar algo como o seguinte em um único vhost para atingir seu objetivo:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName sub.domain.com
ProxyRequests Off
<Proxy http://sub.domain.com/jenkins>
Order deny,allow
Allow from all
ProxyPreserveHost off
ProxyPass http://localhost:8080/jenkins
ProxyPassReverse http://localhost:8080/jenkins
</Proxy>
<Proxy http://sub.domain.com/redmine>
Order deny,allow
Allow from all
ProxyPreserveHost off
ProxyPass http://localhost:8081/redmine
ProxyPassReverse http://localhost:8081/redmine
</Proxy>
</VirtualHost>