Aqui está o método que eu tenho usado.
- Instale o Apache e o encadeamento encadeados e associe as bibliotecas de desenvolvimento do Apache.
- Crie um usuário de implantação e, em seguida, instale o RVM no homedir de usuários de implementação
- Agora, instale o REE 1.8.7 ou o Ruby 1.9.2 via rvm. Ambos usam menos memória do que o padrão 1.8.7 e você terá que escolher com base em qual deles funciona melhor com o seu aplicativo.
- Agora remova os pacotes mod_passenger do Ubuntu e instale o Passenger como uma jóia através do usuário de implementação usando RVM com o ruby que você deseja usar. Certifique-se de criar os binários do Passenger usando o RVM também. Verifique se você está instalando o Passenger correto também para o sistema, que é 2.x ou 3.x
- Crie /etc/apache2/mods-available/passenger2.conf ou passenger3.conf, bem como o passageiro correspondente.load para que eles não entrem em conflito com o passageiro.conf que o pacote mod_passenger usa. Certifique-se de copiar a saída do edifício Passenger correta, bem como certificar-se de que você está especificando os caminhos RVM corretamente para a sua versão do Passenger, que dependerá muito pouco da versão 2.x ou 3.x.
Como ponto de vantagem, você deve tentar executar seu aplicativo e garantir que ele funcione. Quando o site estiver carregando normalmente, você poderá começar a refinar sua configuração do Passenger. A configuração que eu uso se parece com isso.
# rvm and passenger paths
PassengerRoot /home/deploy/.rvm/gems/ruby-1.9.2-p136/gems/passenger-3.0.2
PassengerRuby /home/deploy/.rvm/wrappers/ruby-1.9.2-p136/ruby
# set max instances
PassengerMaxPoolSize 6
# Always have one instance running
PassengerMinInstances 1
# recyle an instance after 10k requests
PassengerMaxRequests 10000
# check tmp for restarts one request per 10 secs rather than every request
PassengerStatThrottleRate 10
# don't shutdown any of the spawners
RailsFrameworkSpawnerIdleTime 0
RailsAppSpawnerIdleTime 0
Minha configuração tenta manter uma instância ativa em todos os momentos e usa um pouco mais de memória, não fechando os spawners. Você quer usar muito pouco ram, mas você não quer esperar 15-30 segundos para atender a uma solicitação porque todo o processo do Rack foi encerrado. Eu tentaria algo como o seguinte no seu caso.
PassengerMaxPoolSize 2
PassengerMinInstances 1
PassengerPoolIdleTime 3600
RailsFrameworkSpawnerIdleTime 1800
RailsAppSpawnerIdleTime 600
PassengerStatThrottleRate 10
Se as coisas ficarem muito boas, você poderá começar a reduzir as configurações e ver como isso funciona para você.