部署 JRuby 的最佳方式?
**背景:**我正在開發一個 Ruby Web 應用程序,並決定切換到 JRuby 有幾個原因,我不會在這裡提及。我有使用 Apache 和 Lighttpd 等伺服器的經驗,但我沒有使用 Java 或部署基於 Java 的 Web 應用程序的經驗。
就伺服器軟體而言,JRuby Web 應用程序的最佳設置是什麼?(以及我可能需要的任何其他內容。)我有哪些伺服器選擇?設置基於 Java 的伺服器和 Apache 之間有什麼不同?換句話說,我該如何開始?
感謝您幫助新手。:)
PS:由於Java是跨平台的,我不知道這是否會有所不同,但是我的開發機器執行的是Vista,所以如果我也可以在Windows上使用相同的設置進行開發,那就太好了。
你看過這些教程嗎…
我可以建議您嘗試最近的 4.0 beta 版本的Passenger Phusion for Open Source 嗎?它與 Apache 集成,使您能夠在啟用的站點之一中安裝基於 JRuby Rack 的應用程序。
http://blog.phusion.nl/2012/10/24/phusion-passenger-4-0-beta-1-is-here/
和
在此處從 Google 程式碼下載 tarball:
$ curl -O http://phusion-passenger.googlecode.com/files/passenger-3.9.2.beta.tar.gz $ $ JRUBY_OPTS="-Xcext.enabled=true" jruby ./bin/passenger-install-apache2-module $ jgem install rack # Or jruby -S gem install rack
接下來,將以下行添加到您的 Apache 配置文件(apache.conf 或啟用站點的配置文件):
LoadModule passenger_module /usr/local/lib/passenger-3.9.2.beta/libout/apache2/mod_passenger.so PassengerRoot /usr/local/lib/passenger-3.9.2.beta PassengerRuby /usr/java/jruby/bin/jruby PassengerSpawnMethod direct
顯然,它也可以與 nginx 集成,但我無法確認,因為我沒有嘗試過。
Apache 集成確實對我很有效。請注意,這可能不是理想的企業設置。首先,它是一個測試版。其次,據我了解,這個乘客模組的非企業版不會是多執行緒的。這對於 JVM 應用程序的確切含義對我來說沒有意義,但我還沒有進行足夠的研究來確定它是否真的是一個問題。另請注意,我向那些有興趣快速進行設置的人提出此建議,特別是使用現有的 Apache 安裝。