Server:Passenger 设想下:一个有多个数据库的程序在跑的过程中,一个数据库挂掉了,挂掉的叫 DB1,那么整个 rails 程序就会出错。
怎么保证在另一个不需要挂掉的数据库 DB1,的页面中可以继续浏览?
数据库都挂了,跑起来有什么用?
呵呵
#1 楼 @huacnlee 有时需要显示一些静态页面
求解!
#4 楼 @hlcfan 静态页面只要 nginx 活着的就行了啊
#5 楼 @ywencn 怎么切换到静态页面?
public 下面有个 500.html,默认是这个
可以试着把不要 DB 下能跑的页面缓存起来呀,比如做一个 page_cache。
#7 楼 @Rei 赞同。在生产环境,ROR 不会给出详细的错误提示,但会给出 500 Error。定义一下这个页面就行了。
抱歉,各位,这个问题我没描述清楚
怎么解决?把 DB 启起来,重启程序...
不知道能不能捕获 sql 异常,如果是 sql 异常的话跳转到 sql 异常页面,其他异常跳转到普通异常页面
从服务器入手啊
#11 楼 @fresh_fish 我不能实时看着他挂掉啊
#13 楼 @gaicitadie passenger?
楼主是想要报警吧……
上各种监控吧
#15 楼 @hlcfan
比较简单通用的方式,写一个脚本 (bash、python、ruby、perl 都行) 获取某个页面,分析这个页面的内容,如果含有数据库挂掉相关的错误则重启 DB,然后用 crontab 定期执行这个脚本,比如每分钟执行一次
@hlcfan 服务器上用 monit 加上 mysql 和 passenger 的监控
#18 楼 @Richie 不好意思,我没描述清楚。