
在工作中,我有一台運行 Apache 1.3.20 的 SuSE 7.3,但我沒有管理員權限。我想在沒有或沒有的情況下部署 Ruby on Rails很少為管理員工作。
我需要該服務始終保持運行,即使伺服器重新啟動,我需要它比 CGI-Speed 運行得更快,並且我希望有一個沒有連接埠的簡單網域。
我有什麼選擇?
答案1
在另一台伺服器上運行rails(nginx+mod_rails是我最喜歡的,但lighttpd、mongrel或類似的東西也可以),然後要求管理員從apache反向代理它。
答案2
在 Apache 1.3 上運行 Rails 比在 2.x 系統上運行要痛苦得多。
您需要在每個應用程式的特定連接埠號碼上本機執行 mongrels(可能由該伺服器的管理員設定以正確啟動),然後使用一些代理魔法將 Apache 發送到那裡或另一台機器上。如果您選擇在不同的電腦上執行,請安裝 Apache 2.0 並使用 Phusion 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
恕我直言,如果您想維護命令列驅動的設定管理,那麼新增網站沒有比這更容易的了。
至於使用 Capistrano 部署新版本的 RoR 應用程序,實際上就像輸入 cap deploy:migrations 來推送新版本一樣簡單,如果搞砸了,可以使用 cap deploy:rollback 來撤消它。呼。
無論您選擇如何為應用程式提供服務,我都會使用 Capistrano 來部署您的應用程式。