我已经配置好东西,以便可以登录和访问使用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?使用错误的端口?

感谢收到任何建议

提前致谢

最佳答案

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

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

config.proxy_host="1.2.3.4"
config.proxy_port=1111

本质上,当发生服务器错误时,连接将从服务器推出到大多数标准代理配置将阻止的网络间。添加此代理配置不会影响客户端错误(javascript错误),因为在errbit(位于客户端计算机上)的airbrake通知程序javascript中未使用(正确使用)代理配置。

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

要添加到etc / hosts文件中,请添加:

1.1.1.1 https://www.whatever.org

希望这可以帮助

关于ruby-on-rails - 使用Nginx运行certbot并使用ssl运行乘客,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12590382/

10-10 15:08