Eu fiz um pequeno 'mod' em Lua que faz o Apache parar com 'URL mismatches'
Ex.: Se o Nginx estiver a fazer Proxy para um site apache noutra porta, o Apache pode adicionar a porta ao URL, trocar entre http:// e https:// entre outros.
Esta solução trata dos dois cenários mais prováveis:
CanonicalName faz o Apache forçar o nome que acha que tem, o que é problemático se o Nginx estiver na frente.
Vai causar URLs estranhos.
Aqui a solução é simples, colocar isto nas configurações:
CanonicalName Off
Só isto já resolve imenso.
Directory Slash é quando o Apache adiciona um / no final do URL
Antes: http://domain.com
Depois: http://domain.com/
Só que o Apache não sabe que o Nginx está à frente, nem que a porta e o endereço são diferentes, o que por isso causa URL mismatch.
Por isso um dos scripts Lua adiciona o /
antes que o Apache acione o DirectorySlash.
E como o script tem atenção a headers como X-Host e X-Forwarded-Scheme,
este script faz um "Smart" Directory Slash, prevenindo URL mismatch :)
Não é a solução perfeita, mas é uma solução que previne grande parte dos problemas.
Não te esqueças de :
Eu também estou a trabalhar num mod (em C) que subsitua as variáveis de raiz, resolvendo o problema de raiz em vez de ser um band-aid.