Запуск приложения Ruby на Apache - PullRequest
2 голосов
/ 17 июня 2010

В последнее время я изучаю Ruby и хочу загрузить тестовое веб-приложение на свой сервер. Но я не могу понять, как заставить его работать на моем общем хостинге.

Мои данные хостинга

  • Общий хостинг с JustHost (список функций см. Здесь )
  • ОС: Linux
  • Apache: 2.2.11
  • cPanel: 11.25.0-STABLE
  • Нет Доступ по SSH.
  • Можно установить Ruby Gems.
  • Не могу установить модули Apache.
  • Может" Управление приложениями Ruby on Rails " через cPanel.
  • Установлен драгоценный камень Mongrel.

Я создал следующее простое приложение HelloWorld Ruby Rack , используя Sinatra :

#!/usr/bin/ruby ruby
require 'rubygems'
require 'sinatra'
get '/hi' do
  "Hello World!"
end

Я просто не могу понять, как "запустить" приложение. Нужно ли сообщать Mongrel (или, возможно, Apache), что приложение как-то существует? Как мне запустить это приложение? Я рад предоставить больше информации, если это необходимо.

1 Ответ

3 голосов
/ 17 июня 2010

Во-первых, вы должны запустить приложение вручную или по сценарию при запуске сервера. Просто сделайте что-то вроде ruby ​​hi.rb (как описано на веб-странице sinatra, приложение запускается через порт 4567). Тогда у вас есть два варианта. 1) Вы можете получить доступ к этому приложению напрямую как: http://yourserver:4567/ или 2) вы можете использовать apache в качестве прокси.

Если вы хотите использовать apache в качестве прокси, вы должны использовать серверы виртуального хоста. например:

NameVirtualHost hi.server:80
<VirtualHost hi.server:80>
    Servername hi.server
    RewriteEngine On
    <Proxy balancer://hi>
        BalancerMember http://127.0.0.1:4567
    </Proxy>
    ProxyPass / balancer://hi/
    ProxyPassReverse / balancer://hi/
</VirtualHost>

И если у вас есть, например, несколько ядер, вы можете запускать hi.rb более одного раза (каждый раз на другом порту), и вы просто добавляете новый BalancerMember. Вы также можете включить кэш apache с помощью директивы: CacheEnable mem /

...