对等方重置连接 - SSL_connect 使用 Bitly 时在生产中出错

Connection reset by peer - SSL_connect error in production when using Bitly

我在 2 个案例中在我的应用程序中使用了 bitly url。在一种情况下,我通过 jQuery 使用它作为:

  function get_short_url(long_url, login, api_key, func)
{
    $.getJSON(
        "http://api.bitly.com/v3/shorten?callback=?", 
        { 
            "format": "json",
            "apiKey": api_key,
            "login": login,
            "longUrl": long_url
        },
        function(response)
        {
            func(response.data.url);
        }
    );
}

在其他情况下,我使用 1.0.2 版 gem。为此,我正在添加

查看:

<%= f.input :link_placeholder, :as => :text, :label => false, :input_html => { :id => 'copy_link', :class => '', :value => "#{get_bitly_url(user_report_url(@user, @report))}", :rows => 2, :cols => 30, :maxlength => 490} %>

控制器:

  def show
    @report = Report.find(params[:id])
    @bitly_url = get_bitly_url("#{user_reports_url}/#{@report.id}")    
    respond_to do |format|
      format.html # show.html.erb
      format.xml  { render :xml => @report }
    end
  end
  def get_bitly_url(url)
    if Rails.env.development?
      return url
    else
      bitly = Bitly.new('myapp', 'R_e2pd1dca0442a20a2qwqw59156e3260d')
      bitly.shorten(url).short_url
    end
  end

以上 2 个在开发模式和 rails 生产模式下运行良好,我还尝试在 AWS EC2 实例中使用 Apache 和 Phusion,它运行良好 但它在 url 和 "https".

中提到域名的主要生产服务器中不起作用

这些是我遇到的错误:

Errno::ECONNRESET (Connection reset by peer - SSL_connect):
app/controllers/reports_controller.rb:342:in get_bitly_url'<br> app/controllers/reports_controller.rb:35:inshow'

show中提到的url是来自上面提到的js文件。

请帮助我摆脱这个错误。

这通常发生在服务器损坏时。您是否检查过 url 是否在主服务器上?如果它适用于开发,也应该适用于生产。祝你好运!

错误显示 peer - SSL_connect,这可能是网络问题。因此,请检查您的网络是否打开了 bitly 端口。