2011-12-01 26 views
6

現在、私たちのサーバーにRailsアプリケーションを起動する際に問題が発生した場合、「Ruby(Rack)アプリケーションを起動できませんでした」というエラーメッセージが表示されます。Nginxの乗客のデフォルトのエラーページの変更

このエラーページをカスタマイズして、ライブサイトのユーザーにこれが表示されないように他のものを表示することはできますか?

私はサーバにnginxを使用しています。

おかげ

+0

投稿することができますか? –

+0

@DevinM - これは一般的なレールアプリの設定です。 – stringo0

答えて

1

Passenger 5.1のテストでは、デフォルトのエラーページを変更するには、passenger_friendly_error_pages offの設定では不十分であることがわかりました。これにより、バックトレースまたは環境変数の公開は無効になりますが、引き続きPassengerのエラーページが表示されます。これを解決するには

私は次のように設定する必要がありました:

passenger_intercept_errors on; 
error_page 500 /500.html; 

コマンドpassenger_intercept_errorsは、400以上のステータスコードを処理するためにnginxのを伝えます。 error_pageコマンドはエラーをカスタマイズします。他のエラーもカスタマイズすることができます。

Railsアプリの場合、ページの場所は、アプリのpublicフォルダ(Nginxのrootコマンドで設定した内容)に関連しています。

述べたようにはthis commentで、Apacheのための同様の構成は以下のとおりです。あなたはnginxの設定ファイルを

PassengerErrorOverride on 
ErrorDocument 500 /path/to/500.html 
9

users guideは、さまざまな設定オプションに関するいくつかの良い情報が含まれています。 option to disable the friendly error pagesがあります。あなたが見ていると思われるものです。起動時のエラーメッセージは、あなたの設定ファイルに以下の行を指定して無効にするには

passenger_friendly_error_pages off 

は、HTTPブロック、サーバブロックや場所のブロックの中にこれを置くことができます。 httpブロックに配置すると、そのサーバー上のすべての仮想ホストに対してデフォルトで無効になります。ただし、同じオプションをhttpブロック内に置くことで、サーバーブロックの設定を上書きすることができます。

+0

フレンドリーなエラーページをオフにすると、代わりに表示されるのは何ですか?そのエラー情報はまだ私のサーバーのどこかに記録されていますか?代わりにカスタムエラーページを表示するとどうなりますか(たとえば、twitterのfailwhale)? – Bee

+0

ビー、あなたのnginx error.logにエラーが表示されるはずです。それから、標準の500ページが必要です。これはnginxで設定できます。 –

関連する問題