A partir da experiência com o fornecimento de hospedagem gerenciada para alguns negócios baseados em Rails, sempre foi bem-sucedido separar db e app (como o fahadsadah aponta).
No entanto, eu não rodaria o Apache e nginx na mesma máquina, especialmente em um ambiente de vps com recursos limitados. Como já foi dito antes, o próprio Apache é bem pesado, mas pode suportar todas as suas necessidades de passageiro, svn, php. Então eu não adicionaria nginx ao mix. Afinal, é mais um software que precisa ser mantido (configurado, atualizado / corrigido, etc.).
Além disso, eu pessoalmente tento não hospedar meu código-fonte na mesma configuração em que meu aplicativo é executado. Estou muito confiante na robustez e segurança do nosso código, mas se alguém conseguir encontrar um caminho através do aplicativo e no servidor, ele também terá acesso total à nossa fonte. E seus dados e suas revisões de código são possivelmente a última coisa que você quer que um hacker coloque em suas mãos ...
Eu sei que é um plug sem vergonha, mas minha empresa oferece pacotes Redmine & A SVN hospeda sob a marca Planio . Deve haver outros serviços, como o Planio, para que você possa fazer uma escolha. Meu principal conselho é: tentar delegar hospedagem de sistemas de apoio a terceiros externos confiáveis e concentrar seus esforços de hospedagem em seu núcleo (ou seja, seu aplicativo).