На работе у меня есть SuSE 7.3 с Apache 1.3.20, к которому у меня нет прав администратора. Я бы хотел развернуть Ruby on Rails без или очень мало работают на админов.
Мне нужно, чтобы служба работала постоянно, даже если сервер перезагружается, мне нужно, чтобы она работала быстрее, чем CGI-Speed, и я хотел бы иметь простой домен без портов.
Какие у меня варианты?
Запуск Rails в Apache 1.3 будет гораздо более болезненным, чем в системе 2.x.
Вам нужно будет либо запустить mongrels локально (возможно, настроенный администратором этого сервера для правильного запуска) на определенных номерах портов для каждого приложения, а затем использовать магию прокси для отправки Apache туда или на другой машине. Если вы решите работать на другом компьютере, установите Apache 2.0 и используйте Phusion Passenger. Это облегчит тебе жизнь.
Пример конфигурации Passenger для нового сайта на Apapche:
<VirtualHost *:80>
ServerName blog.flame.org
DocumentRoot /www/blog/flame-blog/current/public
ExpiresDefault "access plus 10 years"
</VirtualHost>
Я поместил это в файл под названием /local/httpd/sites/blog.flame.org.conf
, затем используйте это в моем httpd.conf
файл:
Include /local/httpd/sites/*.conf
ИМХО, нет ничего проще добавить новый сайт, чем этот, если вы хотите поддерживать управление конфигурацией, управляемое из командной строки.
Что касается развертывания новой версии приложения RoR с использованием Capistrano, это буквально так же просто, как ввести cap deploy: migrations, чтобы вытолкнуть новую версию, и, если вы ошиблись, cap deploy: rollback, чтобы отменить его. Уэи.
Я бы использовал Capistrano для развертывания ваших приложений независимо от того, как вы их обслуживаете.
Запустите rails на другом сервере (nginx + mod_rails - мой любимый, но подойдет lighttpd, mongrel или что-то подобное) и просто попросите администраторов отменить прокси-сервер из apache.