更改Nginx的乘客默认错误页面

时间:2011-12-01 18:58:22

标签: ruby-on-rails nginx passenger

目前,如果在我们的服务器上启动Rails应用程序时出现问题,用户将被带到Passenger错误页面,其中包含“无法启动Ruby(Rack)应用程序”等错误。

是否可以自定义此错误页面并显示其他内容,以便实时网站的用户看不到此内容?

我正在使用nginx作为服务器。

由于

2 个答案:

答案 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