現在、私たちのサーバーにRailsアプリケーションを起動する際に問題が発生した場合、「Ruby(Rack)アプリケーションを起動できませんでした」というエラーメッセージが表示されます。Nginxの乗客のデフォルトのエラーページの変更
このエラーページをカスタマイズして、ライブサイトのユーザーにこれが表示されないように他のものを表示することはできますか?
私はサーバにnginxを使用しています。
おかげ
現在、私たちのサーバーにRailsアプリケーションを起動する際に問題が発生した場合、「Ruby(Rack)アプリケーションを起動できませんでした」というエラーメッセージが表示されます。Nginxの乗客のデフォルトのエラーページの変更
このエラーページをカスタマイズして、ライブサイトのユーザーにこれが表示されないように他のものを表示することはできますか?
私はサーバにnginxを使用しています。
おかげ
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
users guideは、さまざまな設定オプションに関するいくつかの良い情報が含まれています。 option to disable the friendly error pagesがあります。あなたが見ていると思われるものです。起動時のエラーメッセージは、あなたの設定ファイルに以下の行を指定して無効にするには
:
passenger_friendly_error_pages off
は、HTTPブロック、サーバブロックや場所のブロックの中にこれを置くことができます。 httpブロックに配置すると、そのサーバー上のすべての仮想ホストに対してデフォルトで無効になります。ただし、同じオプションをhttpブロック内に置くことで、サーバーブロックの設定を上書きすることができます。
フレンドリーなエラーページをオフにすると、代わりに表示されるのは何ですか?そのエラー情報はまだ私のサーバーのどこかに記録されていますか?代わりにカスタムエラーページを表示するとどうなりますか(たとえば、twitterのfailwhale)? – Bee
ビー、あなたのnginx error.logにエラーが表示されるはずです。それから、標準の500ページが必要です。これはnginxで設定できます。 –
投稿することができますか? –
@DevinM - これは一般的なレールアプリの設定です。 – stringo0