Рельсы с пассажирами только в разработке - PullRequest
4 голосов
/ 21 мая 2010

У меня проблема с одним из наших веб-серверов. Я постараюсь объяснить это как можно яснее, но я не на 100% осведомлен обо всей конфигурации сервера.

Рядом с eachother запущены 2 сайта (blcc_preprod и blcc_prod), поэтому в 'sites-enabled' apache это файл 'blcc', подобный этому:

<VirtualHost *:80>
    DocumentRoot /opt/dn/blcc/www
    RailsBaseURI /blcc_preprod
    RailsBaseURI /blcc_prod
    RailsEnv production
</VirtualHost>

Мой config / environment / production.log (из обоих) выглядит так (я удалил все комментарии, потому что он портится с макетом)

config.cache_classes = true

config.action_controller.consider_all_requests_local = false
config.action_controller.perform_caching             = true
config.action_view.cache_template_loading            = true

config.log_level = :debug

Странно то, что мой производственный журнал датируется месяцами назад, поэтому что-то действительно не так.

Может ли кто-нибудь помочь? Если вам нужна дополнительная информация, просто спросите.

Спасибо!

Edit: Error.log из apache показывает нормальный вывод события на сервер (в данном случае веб-сервер подключается к другому бизнес-серверу (java) через фреймворк) Access.log пуст

Содержание из other_vhosts_access.log после перехода на ip / blcc_preprod:

blcc.localdomain:80 192.168.21.194 - - [25/May/2010:08:33:04 +0200] "GET/ blcc_preprod
HTTP/1.1" 500 594 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET 
CLR 1.1.4322; .NET CLR 2.0.50727)"

Ответы [ 3 ]

1 голос
/ 05 июня 2010

Ошибка относится к внутренней ошибке.

Итак:

tail -f /var/log/apache2/error_log

И попробуйте зайти на сайт.

Ошибки идут туда, потому что Пассажир не может инициализировать приложение Rails, поэтому он считает, что ошибка - это что-то вне вашего приложения. Скорее всего, модуль отсутствует или что-то инициализировано неправильно.

1 голос
/ 27 октября 2010

Использование RoR 3.x?
Попробуйте

RackEnv development  

или

RackEnv production  
0 голосов
/ 21 мая 2010

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

В документации для пассажиров сказано следующее для настройки RailsEnv:

"В каждом месте может быть указано не более одного раза . Значение по умолчанию - производство."

(http://www.modrails.com/documentation/Users%20guide.html#rails_env)

Итак, одна директива VirtualHost не может указывать несколько указанных RailsEnv.

Это может быть причиной того, что вы видите только одно работающее приложение (хотя я не уверен, почему оно разрабатывается).

Я предлагаю вам либо разделить приложения для производства / разработки на отдельные виртуальные хосты, либо использовать блокировку. Может быть, что-то вроде этого:

<VirtualHost *:80>
  DocumentRoot /opt/dn/blcc/www
  RailsBaseURI /blcc_preprod
  RailsBaseURI /blcc_prod

  <Location /blcc_preprod>
    RailsEnv development
  </Location>

  <Location /blcc_prod>
    RailsEnv production
  </Location>
</VirtualHost>
...