2

我已经进行了配置,以便我可以使用 ssl 登录和访问在 nginx 上运行的 errbit

我的问题是我无法弄清楚如何设置我的 rails 应用程序的 errbit.rb 所以我可以运行测试

nginx.conf 看起来有点像:

server {
    listen 443;
    ssl on;
    ssl_certificate stuff.crt;
    ssl_certificate_key stuff.key;

    server_name  www.whatever.org;

    location / {
      root /web/stuff;
    }

    location /errbit {
      root /webapps2;
      passenger_enabled on;
      rails_env development;
      passenger_base_uri /errbit;
    }
}

所以 www.whatever.org/errbit 显示 errbit

初始化程序/errbit.rb 看起来像:

Airbrake.configure do |config|
  config.api_key            = 'code'
  config.host           = 'www.whatever.org/errbit'
  config.port           = 443
  config.secure         = config.port == 443
end

运行 bundle exec rake airbrake:test 给出:

...

Started GET "/verify" for  at 2012-09-25 20:37:22 +0100
Raising 'AirbrakeTestingException' to simulate application failure.
** [Airbrake] Failure: Net::HTTPNotFound
** [Airbrake] Environment Info: [Ruby: 1.9.2] [Rails: 3.1.1] [Env: staging]
** [Airbrake] Response from Airbrake: 
<html>
<head><title>404 Not Found</title></head>
<body bgcolor="white">
<center><h1>404 Not Found</h1></center>
<hr><center>nginx/1.3.5</center>
</body>
</html>

并且没有消息到达errbit

这只是一个非首发,还是 /errbit 问题?SSL?使用错误的端口?

任何建议都感激不尽

提前致谢

4

1 回答 1

0

我有一个类似的问题,原来我有一个代理阻止服务器对 errbit api 的 https 请求。

如果您确实有代理阻止连接,则需要添加到 errbit.rb:

config.proxy_host="1.2.3.4"

config.proxy_port=1111

本质上,当出现服务器错误时,连接会从服务器推送到大多数标准代理配置将阻止的互联网。添加此代理配置不会影响客户端错误(javascript 错误),因为在airbrake notifier javascript for errbit(位于客户端计算机上)中未使用代理配置(这是正确的)。

另一个可用的选项是,如果您的 errbit 应用程序是内部的(除非您知道自己在做什么,否则应该是内部地址),您可以将 errbit api 的内部地址添加到您的应用程序正在运行的服务器上的 etc/hosts 文件中。这将阻止应用程序尝试绕过代理连接到内部网络。话虽如此,您将无法捕获客户端错误

添加到 etc/hosts 文件添加:

1.1.1.1 https://www.whatever.org

希望这可以帮助

于 2013-03-05T17:44:32.147 回答