目前,如果在我们的服务器上启动Rails应用程序时出现问题,用户将被带到Passenger错误页面,其中包含“无法启动Ruby(Rack)应用程序”等错误。
是否可以自定义此错误页面并显示其他内容,以便实时网站的用户看不到此内容?
我正在使用nginx作为服务器。
由于
答案 0 :(得分:9)
users guide包含有关各种配置选项的一些很好的信息。我认为您可能会看到option to disable the friendly error pages。
要禁用启动错误消息,请在配置文件中指定以下行:
passenger_friendly_error_pages off
您可以将其放在http块,服务器块或位置块中。如果将它放在http块中,它将默认为该服务器上的所有虚拟主机禁用它。但是,您可以通过在http块中放置相同的选项来覆盖服务器块中的设置。
答案 1 :(得分:3)
在测试Passenger 5.1时,我发现设置passenger_friendly_error_pages off
不足以更改默认错误页面。这会禁用公开回溯或环境变量,但仍会显示Passenger的错误页面。
要解决此问题,我必须设置以下内容:
passenger_intercept_errors on;
error_page 500 /500.html;
命令passenger_intercept_errors
告诉nginx处理400或更高的状态代码。 error_page
命令自定义错误。您可能还想自定义其他错误。
对于Rails应用程序,页面的位置相对于应用程序的public
文件夹(您在nginx的root
命令中设置的内容)。
如上所述this comment,Apache的类似配置是:
PassengerErrorOverride on
ErrorDocument 500 /path/to/500.html