目前,如果在我们的服务器上启动Rails应用程序时出现问题,用户将被带到Passenger错误页面,并显示“Ruby(Rack)应用程序无法启动”之类的错误。
是否有可能定制这个错误页面,并显示其他内容,所以活网站的用户看不到这个?
我正在使用nginx的服务器。
谢谢
在测试乘客5.1时,我发现passenger_friendly_error_pages off
不足以更改默认错误页面。 这将禁用暴露backtrace或环境变量,但仍显示乘客的错误页面。
要解决这个问题,我必须设置以下内容:
passenger_intercept_errors on; error_page 500 /500.html;
passenger_intercept_errors
命令告诉nginx处理400或更高的状态码。 error_page
命令定制错误。 您可能还想自定义其他错误。
对于Rails应用程序,页面的位置是相对于应用程序的公用文件夹(您在nginx的root
命令中设置的)。
正如前面提到的那样,Apache的类似配置是:
PassengerErrorOverride on ErrorDocument 500 /path/to/500.html
用户指南包含了有关各种配置选项的一些很好的信息。 有一个选项可以禁用友好的错误页面 ,这是我想你可能会看到的。
要禁用启动错误消息,请在配置文件中指定以下行:
passenger_friendly_error_pages off
您可以将其放置在http块,服务器块或位置块中。 如果你把它放在http块中,默认情况下会禁用该服务器上的所有虚拟主机。 但是,您可以通过在http块中放置相同的选项来覆盖服务器块中的设置。