
No trabalho, tenho um SuSE 7.3 executando o Apache 1.3.20, ao qual não tenho acesso de administrador. Eu gostaria de implantar Ruby on Rails sem oumuito poucotrabalhar para os administradores.
Preciso que o serviço continue rodando o tempo todo, mesmo que o servidor seja reiniciado, preciso que ele rode mais rápido que o CGI-Speed e gostaria de ter um domínio simples sem portas.
Quais são minhas opções?
Responder1
Execute rails em outro servidor (nginx+mod_rails é meu favorito, mas lighttpd, mongrel ou algo semelhante deve servir) e apenas peça aos administradores para reverter o proxy do Apache.
Responder2
Executar Rails no Apache 1.3 será muito mais doloroso do que em um sistema 2.x.
Você precisará executar vira-latas localmente (talvez configurado por um administrador desse servidor para inicializar corretamente) em números de porta específicos por aplicativo e, em seguida, usar alguma mágica de proxy para enviar o Apache para lá ou para uma máquina diferente. Se você optar por rodar em uma máquina diferente, instale o Apache 2.0 e use o Phusion Passenger. Isso tornará sua vida mais fácil.
Exemplo de configuração de passageiro para um novo site no Apapche:
<VirtualHost *:80>
ServerName blog.flame.org
DocumentRoot /www/blog/flame-blog/current/public
ExpiresDefault "access plus 10 years"
</VirtualHost>
Coloquei isso em um arquivo chamado /local/httpd/sites/blog.flame.org.conf
e usei isso no meu httpd.conf
arquivo:
Include /local/httpd/sites/*.conf
IMHO, não existe nada mais fácil adicionar um novo site do que este, se você deseja manter o gerenciamento de configuração orientado por linha de comando.
Quanto à implantação de uma nova versão de um aplicativo RoR, usando Capistrano, é literalmente tão fácil quanto digitar cap deploy:migrations para enviar uma nova versão e, se você errar, cap deploy:rollback para desfazê-lo. Uau.
Eu usaria o Capistrano para implantar seus aplicativos, não importa como você escolha atendê-los.