Executando o Passenger com nginx em várias versões de Ruby com RVM

Quando você deseja implantar vários aplicativos Rails em um único VPS, pode ter problemas quando eles exigem diferentes versões de Ruby. Tenho uma dica rápida para você habilitar isso facilmente.

Em primeiro lugar, vou assumir que você já tem o RVM rodando em seu VPS e instalou o módulo de passageiro em sua instância nginx com:

passenger-install-nginx-module

Agora, certifique-se de ter instalado o Phusion Passenger 4.0.0 ou superior, já que essas versões permitem várias versões do Ruby. Também presumo que você instalou várias versões do Ruby com RVM. Digamos ruby ​​1.9.3-p545 e ruby ​​2.0.0-p451.

Os aplicativos Example Rails estão rodando em ruby-1.9.3-p545 e o aplicativo AnotherExample Rails está rodando em ruby-2.0.0-p451. Tudo o que você precisa adicionar ao seu arquivo (ou arquivos) nginx .conf agora são os seguintes blocos de servidor:

server {
listen
80;
server_name example
.com
root
/var/www/example/current/public;

passenger_ruby
/home/deploy/.rvm/wrappers/ruby-1.9.3-p545/ruby;
passenger_enabled on
;

...
}

server
{
listen
80;
server_name anotherexample
.com
root
/var/www/anotherexample/current/public;

passenger_ruby
/home/deploy/.rvm/wrappers/ruby-2.0.0-p451/ruby;
passenger_enabled on
;

...
}

É isso aí!