Ich habe eine Rails app läuft auf nginx 1.2.0 und passagier 3.0.7. Ich möchte die benutzerdefinierten Fehlerseiten in der App "rails" (z. B. /rail_app/public/500.html) angezeigt bekommen, wenn der entsprechende http-Fehler in der App auftritt.rails app auf nginx + passagier zeigt keine benutzerdefinierten fehlerseiten
Hier ist meine aktuelle nginx Konfigurationsdatei:
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/;
}
}
}
Diese Konfiguration zeigt nicht die Rails-Anwendung Kundenfehlerseite nicht nur den Statuscode an den Client http Fehler sendet.
Wer weiß, was es braucht, um nginx/passagier senden Sie die Rails app benutzerdefinierte Fehlerseite mit dem http-Fehlerstatuscode an den Client?
Benjamin dank fehlt für die Antwort. Ich habe es versucht und es hat nicht funktioniert. Hier ist ein bisschen mehr Details über das, was ich zu erreichen versuche: Wenn die Datenbank ausfällt ... möchte ich, dass die Rails-App die benutzerdefinierte 500-Fehlerseite anzeigt, anstatt nur 500 an den Client zu senden. Vielleicht sollte ich die ActiveRecord-Ausnahme abfangen? nur nicht sicher wie. – Rafael
Fehler im Prod-Protokoll: '/! \ FAILSAFE /! \ Fr Jun 14 10:29:18 -0400 2013 Status: 500 Interner Serverfehler Verbindung zum MySQL-Server unter '169.254.1.51' (113) nicht möglich /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.17/lib/active_record/connection_adapters/mysql_adapter.rb:620:in 'real_connect'' – Rafael