我正在使用 Dokku 在生产服务器上部署应用程序。在某些页面上,我的应用程序崩溃并出现蓝屏:
我登录到服务器并运行
dokku log my-app-name
,希望能看到错误 - 但不幸的是,日志中没有错误。
然后我查看了
/var/log/nginx/my-app-name-error.log
- 也没有捕获到错误,只有错误发生之前的最后一个已知请求。另外,我再次查看了/var/log/nginx.error.log
,没有错误。
我也集成了 Rollbar,但它也没有捕获任何错误。最后,我将
config.consider_all_requests_local
设置为 true
以在 Rails 应用程序中进行生产,但它也没有提供任何错误指示。
有什么建议我如何找到导致蓝屏的问题吗?
这可能与 BetterErrors 调试实时 shell 有关。默认情况下,它仅适用于本地主机,但如果您在容器中运行应用程序,则需要将本地网络堆栈列入白名单。
将以下内容放入您的
config/environments/development.rb
# Private subnets defined by RFC1918 as stated in https://docs.docker.com/v1.5/articles/networking/
BetterErrors::Middleware.allow_ip! '10.0.0.0/8'
BetterErrors::Middleware.allow_ip! '172.24.0.1/12'
BetterErrors::Middleware.allow_ip! '172.16.0.0/12'
BetterErrors::Middleware.allow_ip! '192.168.0.0/16'