2009-07-03 4 views
3

Каков предпочтительный способ развертывания приложений compojure/sinatra? У меня есть несколько сайтов, работающих на хосте, поэтому я не могу запустить jetty/mongrel на порт 80. Как я должен обрабатывать несколько сайтов/приложений, работающих на одном хосте?Развертывание приложений Compojure/Sinatra

ответ

7

Используйте веб-сервер, такой как Apache, который работает на порту 80 и использует virtual hosts, чтобы направлять трафик на правильный сервер приложений. Таким образом, в основном вы запускали бы каждый сервер приложений (jetty/mongrel и т. Д.) На другом порту, а затем на каждом виртуальном хосте была бы другая конфигурация, чтобы использовать что-то вроде mod proxy для перенаправления трафика на сервер приложения. Вы можете использовать другой веб-сервер, такой как lighttpd или nginx. Для приложения sinatra вы также можете посмотреть Phusion Passenger, a.k.a mod rails, a.k.a mod rack, который теоретически работает с любым приложением в стойке, хотя я использовал его только с Rails.

Если вы заглянете в него еще, вы обнаружите, что существуют различные схемы пересылки трафика на сервер приложений с веб-сервера, но основной механизм для такого рода вещей всегда сводится к созданию веб-сервера который прослушивает порт 80, который использует виртуальные хосты на основе имени, чтобы затем перенаправить трафик в соответствующее приложение.

3

Я делал такие вещи с различными автономными серверами (например, AllegroServe) в течение многих лет. Я нашел наилучший подход быть:

  • Запуск каждого сервера на другой, без привилегированного порта (таких как 8080)
  • Run pound (или Nginx и т.д.) на 80, выполненный с возможностью отображения запросов для каждого приложения.

Фунт отличный, а конфигурации в конечном итоге очень просты (в отличие от Nginx). Он также сделает SSL-прорыв и HTTP-санитацию для вас, что снимает нагрузку с вашего приложения.

0

Использование пассажира! http://modrails.com - это плагин для apache и nginx, который позволяет (очень) легко запускать приложение ruby ​​в качестве виртуального хоста.

 Смежные вопросы

  • Нет связанных вопросов^_^