レールアプリがnginx 1.2.0と3.0.7で動作しています。アプリケーション内で適切なhttpエラーが発生したときに、レールアプリケーション(例:/rail_app/public/500.html)のカスタムエラーページが表示されるようにしたいと考えています。ここで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/passengerがhttpエラーステータスコードを使ってrails appのカスタムエラーページをクライアントに送信するために必要なことを知っていますか?
ベンジャミン、感謝のためにこのディレクティブのpassenger docsを見ます返信のために。私はそれを試みたが、うまくいかなかった。ここでは、私が達成しようとしていることについてもう少し詳しく説明します:データベースがダウンしているとき... http 500をクライアントに送信するのではなく、カスタム500エラーページを表示するようにします。たぶん、私はactiverecordの例外をキャッチする必要がありますか?方法がわからない。 – Rafael
prod logのエラー:/!\ FAILSAFE /!\ Fri Jun 14 10:29:18 -0400 2013 ステータス:500内部サーバーエラー '169.254.1.51'(113)のMySQLサーバーに接続できません /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.17/lib/active_record/connection_adapters/mysql_adapter.rb:620:in'in real_connect'' – Rafael