Ruby on rails nginx和x2B上的rails应用程序;乘客未显示自定义错误页面

Ruby on rails nginx和x2B上的rails应用程序;乘客未显示自定义错误页面,ruby-on-rails,nginx,passenger,Ruby On Rails,Nginx,Passenger,我有一个运行在nginx 1.2.0和passenger 3.0.7上的Rails应用程序。我希望在rails应用程序中出现相应的http错误时,显示rails应用程序中的自定义错误页面(例如/rail\u app/public/500.html) 这是我当前的nginx配置文件: http { passenger_root /usr/lib/ruby/gems/1.8/gems/passenger-3.0.7; passenger_ruby /usr/bin/ruby;

我有一个运行在nginx 1.2.0和passenger 3.0.7上的Rails应用程序。我希望在rails应用程序中出现相应的http错误时,显示rails应用程序中的自定义错误页面(例如/rail\u app/public/500.html)

这是我当前的nginx配置文件:

http {
    passenger_root /usr/lib/ruby/gems/1.8/gems/passenger-3.0.7;
    passenger_ruby /usr/bin/ruby;

    include       mime.types;
    default_type  application/octet-stream;

    #access_log  /opt/nginx/logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    server {
        listen 80;
        server_name localhost;
        root /var/www/dashboard/current/public;
        passenger_enabled on;
        passenger_min_instances 1;
#       listen 443;
#       ssl on;
#       ssl_certificate /opt/nginx/conf/server.crt;
#       ssl_certificate_key /opt/nginx/conf/server.key;
        error_page 500 502 503 504 /500.html;
        location = /500.html {
            root /var/www/dashboard/current/public/;
        }
    }
}
此配置不显示rails应用程序客户错误页面,而只是将http错误状态代码发送到客户端

有人知道让nginx/passenger向客户端发送rails应用程序自定义错误页面时需要使用http错误状态代码吗?

我使用的配置:

error_page   500 502 503 504  /50x.html;

location = /50x.html {
   root   html;
}

请尝试以下操作:

# We use the x just because it is for all 5xx errors.
error_page 500 502 503 504 /5xx.html;
location = /5xx.html {
    alias /var/www/dashboard/current/public/;
}
重新配置
root
指令毫无意义,因为它已经设置为您之前指定的路径。别名可确保特定位置在内部与文件系统上的不同位置相匹配。所有传入的请求参数都应该传递,如果您的Rails应用程序正在处理这一点,那么它应该回答。只要确保你的Rails应用程序不再回复500状态(我不知道会发生什么)

相关链接


您可能缺少上的乘客拦截错误在nginx配置中


有关此指令的更多信息,请参阅,谢谢您的回复。我试过了,但没用。下面是关于我试图完成的工作的更多细节:当数据库关闭时……我希望rails应用程序显示定制的500错误页面,而不仅仅是将http 500发送到客户端。也许我应该捕获activerecord异常?只是不确定如何操作。产品日志中出现错误:
/!\故障保护/!\Fri Jun 14 10:29:18-0400 2013状态:500个内部服务器错误无法连接到169.254.1.51(113)/usr/lib/ruby/gems/1.8/gems/activerecord-2.3.17/lib/active_record/connection_adapters/MySQL_adapter.rb:620:in
real_connect'`