我已经配置好东西,以便可以登录和访问使用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/