【问题标题】:connect() failed (111: Connection refused) while connecting to upstream连接到上游时连接()失败(111:连接被拒绝)
【发布时间】:2015-04-03 10:02:07
【问题描述】:

我正在使用 nginx 网络服务器在 Rackspace 上托管我的 Rails 应用程序。

当调用任何 Rails API 时,我在 /var/log/nginx/error.log 中看到这条消息: *49 connect() 在连接到上游时失败(111:连接被拒绝),客户端:10.189.254.5,服务器:,请求:“POST /api/v1/users/sign_in HTTP/1.1”,上游:“http://127.0.0.1:3001/api/v1/users/sign_in” ,主机:“anthemapp.com”

  1. 什么是上游区块?
  2. 什么是 /etc/nginx/sites-available/default?这是我可以配置的地方吗?
  3. 为什么我会收到上述错误?

我与 5-6 位不同的 Rackspace 技术人员共度了几个小时(他们不知道如何解决这个问题)。当我将服务器置于救援模式并按照此处的步骤操作时,这一切都开始了:https://community.rackspace.com/products/f/25/t/69。一旦我退出救援模式并重新启动服务器,我就开始收到我正在写的错误。天呐!

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-4 nginx rackspace-cloud rackspace


    【解决方案1】:

    Nginx 是一个反向代理服务器 - 它在您的服务器上的作用是接受 HTTP 请求并将它们代理到同一主机上的另一个进程。错误消息所说的“上游”是指 nginx 配置中的位(其中一部分是 /etc/nginx/sites-available/default 文件),它告诉它将传入请求发送到哪里。您看到的错误消息表明 nginx 收到了一个请求,但无法将其发送到它应该发送的其他进程。

    当您的服务器重新启动时,nginx 进程开始备份,但您的 Rails 进程——本应监听端口 3001 的进程——没有!

    如何重新启动 Rails 进程取决于您之前启动它的方式以及服务器的配置方式。可能就像cd'ing 到服务器上的 Rails 应用程序目录并运行一样简单:

    rails server -b 127.0.0.1 -p 3001 -e production -d
    

    ...但是,为了防止将来发生此类问题(并提高 Rails 应用程序的性能!),最好使用某种可用于生产的 Rails 应用程序服务器。我建议使用Phusion Passenger,因为它是最全面的解决方案——他们的user's guide for nginx 描述了安装和配置——但是有很多 替代方案。在the top answer of this StackOverflow question 上有一篇关于您的选项、它们的含义以及它们之间的关系的精彩文章。

    【讨论】:

    • 胜过灰!我使用 Thin 作为我的应用服务器。如何确保 Thin 正在运行?如何调试 nginx 和 Thin 之间的配置?
    • 啊,很好,你已经在使用 WEBrick 以外的东西了!我自己并没有专门使用过 Thin,但是如果有任何瘦进程正在运行,快速 ps -ef | grep thin 应该会告诉您。
    • 另外:看起来sudo thin install 实际上会为您编写一个/etc/init.d 脚本,以确保在启动时瘦运行。这很方便!这是我发现的一篇博客文章,其中谈到了一点:jordanhollinger.com/2011/04/22/how-to-use-thin-effectivly
    【解决方案2】:

    就我而言,我需要运行:

    bundle install
    bundle update
    

    然后:

    sudo stop puma-manager
    sudo start puma-manager
    

    【讨论】:

      【解决方案3】:

      当我在命令下运行时解决了这个问题

      cap production puma:restart
      

      如果我们在生产环境中切换 ruby​​ 版本,有时会发生这种情况

      【讨论】:

        猜你喜欢
        • 2014-02-26
        • 2012-11-21
        • 2020-03-13
        • 2013-11-03
        • 2017-02-09
        • 2019-12-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多