Почему делает направляющие с Passenger/nginx, только работает в режиме разработки? Никакие доступные журналы

У меня есть серьезная проблема с одним из наших веб-серверов... после наличия внутреннего тестирования альфа-версии с mongrel/haproxy-cluster, который работал хорошо, мы хотели использовать nginx с пассажиром для нашего первого рабочего сервера (клиенты получат доступ к этому серверу).

Однако я могу только запустить приложение направляющих через режим разработки с passenger/nginx.

Само приложение работает прекрасный с полукровкой или webrick в производственном режиме.

Моя самая большая проблема с этим случаем состоит в том, что я не нахожу информации в nginx или журналах направляющих (только, когда я использую полукровку или webrick).

Полномочия корректны. Пассажирское состояние показывает, что приложение работает, но я всегда получаю статическую 500.html-ошибочную страницу...

Было бы настолько хорошо, если Вы парни могли бы дать мне подсказку и помочь мне решить проблему.

Я поместил конфигурацию в нижней части сообщения... Эта точная конфигурация работает с rails_env development;но я хотел бы использовать производственный режим ;-)

Большое спасибо за Вашу справку!


Версия: Ubuntu 8.04.2 64bit / nginx-0.7.64 (скомпилированный и установленный через пассажира 2.2.11)

кошка/opt/nginx/conf/nginx.conf

user  www-data;
worker_processes  4;

error_log  logs/error.log;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
      passenger_root /usr/lib/ruby/gems/1.8/gems/passenger-2.2.11;
      passenger_ruby /usr/bin/ruby1.8;


    passenger_log_level 3;
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  logs/access.log;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       80;
        server_name  <<servername>>;


 root /srv/app01/public;
 passenger_enabled on;
}
6
задан Michael W. 11 March 2010 в 12:09
поделиться

4 ответа

Я запускаю Rails 2.3.5 на Passenger за nginx, и у меня была та же проблема. Мое решение - всегда переключаться в режим разработки в Passenger / nginx или в рабочий режим в WEBrick для отладки, но похоже, что вы пробовали оба.

Вы пытались раскомментировать строку error_log logs / error.log; в вашем nginx.conf?

0
ответ дан 17 December 2019 в 04:45
поделиться

Passenger с Nginx по умолчанию работает в производственном режиме. Используйте команду passenger-install-nginx-module для установки nginx, скомпилированного с модулем Passenger. Вы уверены, что создали и перенесли базу данных для производственного режима?

rake db:create RAILS_ENV=production
rake db:migrate RAILS_ENV=production

Ваш nginx.conf выглядит правильно. Убедитесь, что пользователь nginx (например, www-data) имеет доступ к вашему приложению rails.

Удачи

3
ответ дан 17 December 2019 в 04:45
поделиться

просто удалите config.ru из каталога вашего приложения

пассажир переключится со стойки на рельсы, и все будет работать

2
ответ дан 17 December 2019 в 04:45
поделиться

Это ошибка в Rails. Отказоустойчивое промежуточное программное обеспечение не записывает сообщение об ошибке в файлы журнала должным образом. Я сообщил об этой проблеме и исправил ее несколько месяцев назад, но они еще не выпустили ее: https://rails.lighthouseapp.com/projects/8994/tickets/3577-failsafe-middleware-should-flush-the- logger Примените исправление самостоятельно, и вы увидите сообщение об ошибке в журналах.

0
ответ дан 17 December 2019 в 04:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: