Web-Server

部署 JRuby 的最佳方式?

  • September 21, 2020

**背景:**我正在開發一個 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/

http://blog.phusion.nl/2013/01/24/phusion-passenger-4-0-beta-2-syscall-failure-simulation-framework-focus-on-stability/

在此處從 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 安裝。

引用自:https://serverfault.com/questions/15341