Задний план: Я разрабатываю веб-приложение на Ruby и решил перейти на JRuby по нескольким причинам, которые я не буду здесь упоминать. У меня есть опыт работы с такими серверами, как Apache и Lighttpd, но у меня нет опыта работы с Java или развертывания веб-приложений на основе Java.
Какая установка для веб-приложения JRuby была бы наилучшей с точки зрения серверного программного обеспечения? (И все, что мне может понадобиться.) Какие у меня есть варианты серверов? Чем отличается установка сервера на базе Java от, скажем, Apache? Другими словами, как мне начать?
Спасибо за помощь новичку. :)
PS: Я не знаю, имеет ли это значение, поскольку Java кроссплатформенный, но моя машина для разработки работает под управлением Vista, поэтому было бы здорово, если бы я мог также использовать ту же настройку в Windows для разработки.
Вы видели эти уроки ...
Могу я предложить вам попробовать недавнюю бета-версию Passenger Phusion 4.0 с открытым исходным кодом? Он интегрируется с Apache и позволяет устанавливать приложения на основе JRuby Rack на одном из ваших активных сайтов.
http://blog.phusion.nl/2012/10/24/phusion-passenger-4-0-beta-1-is-here/
И
Загрузите архив с Google Code здесь:
$ 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.
Я сам пытался это сделать, и я нахожусь в той же лодке, что и исходный плакат - большой опыт работы со стеком LAMP, но мне нужно перейти на JRuby и иметь ровно нулевой опыт работы с Java.
Я решил довольно внимательно следить за тем, как работают мои текущие приложения Rails (тонкие позади Apache и mod_proxy_balancer), добавив Причал 6 экземпляр позади Apache и mod_proxy.
Я заглянул в GlassFish, и хотя его было очень легко настроить и запустить, это слишком много для моих нужд - единственная часть стека Java EE, которая мне действительно нужна, - это контейнер сервлетов.
Это еще не в производстве, но в итоге я должен получить Apache, запускаемый сценариями инициализации моего дистрибутива, Jetty, запускаемый capistrano и / или сценариями инициализации, и все, что отслеживается monit. Это достаточно похоже на то, как все работает в настоящее время, и мне это удобно, и единственный настоящий момент "фуу, Java" у меня был - это работа с файлом конфигурации Jetty XML.