У меня есть приложение Rails, работающее на nginx 1.2.0 и пассажире 3.0.7. Я хотел бы, чтобы пользовательские страницы ошибок в приложении rails (например, /rail_app/public/500.html) отображались, когда в приложении появляется соответствующая ошибка http.rails app on nginx + пассажир, не показывающий страницы пользовательских ошибок
Вот мой текущий файл конфигурации Nginx:
http {
passenger_root /usr/lib/ruby/gems/1.8/gems/passenger-3.0.7;
passenger_ruby /usr/bin/ruby;
include mime.types;
default_type application/octet-stream;
#access_log /opt/nginx/logs/access.log main;
sendfile on;
#tcp_nopush on;
server {
listen 80;
server_name localhost;
root /var/www/dashboard/current/public;
passenger_enabled on;
passenger_min_instances 1;
# listen 443;
# ssl on;
# ssl_certificate /opt/nginx/conf/server.crt;
# ssl_certificate_key /opt/nginx/conf/server.key;
error_page 500 502 503 504 /500.html;
location = /500.html {
root /var/www/dashboard/current/public/;
}
}
}
Эта конфигурация не отображается страница ошибки клиента рельсы приложение, а просто отправляет код состояния ошибки HTTP клиенту.
Кто-нибудь знает, что нужно, чтобы nginx/пассажир отправил пользовательскую страницу ошибки rails для клиента с кодом состояния ошибки HTTP?
Benjamin, спасибо для ответа. Я пробовал, и это не сработало. Вот несколько подробностей о том, чего я пытаюсь выполнить: когда база данных не работает ... Я хочу, чтобы приложение rails отображало пользовательскую страницу с ошибкой 500 вместо того, чтобы просто отправлять http 500 клиенту. Может быть, я должен поймать исключение activerecord? просто не уверен, как. – Rafael
Ошибка в журнале prod: '/! \ FAILSAFE /! \ Fri Jun 14 10:29:18 -0400 2013 Состояние: 500 Внутренняя ошибка сервера Не удается подключиться к серверу MySQL на '169.254.1.51' (113) /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.17/lib/active_record/connection_adapters/mysql_adapter.rb:620:in 'real_connect'' – Rafael