代码之家  ›  专栏  ›  技术社区  ›  johnmcaliley

在nginx后面“连接上游时没有上游活动”

  •  2
  • johnmcaliley  · 技术社区  · 14 年前

    我可能在50-100个请求中的一个中得到了这个错误。我在nginx后面运行10个瘦实例,我认为我的负载不够高,无法在所有10个实例中最大限度地使用。即使所有实例都很忙,我也希望nginx等待(也许不是??)以前有人见过这个吗?我正在尝试找出一个调试它的好方法。

    以下是我的设置: rackspace云服务器上的centos 5.5 2GB实例 nGnx0.7.67 1.1.7 钢轨3RC 红宝石1.92RC2

    nginx和10个精简实例在同一服务器上运行。

    1 回复  |  直到 14 年前
        1
  •  4
  •   johnmcaliley    14 年前

    缓存\操作加上重定向\到操作内部导致此问题。它似乎正在写入缓存(或可能正在读取),然后重定向,导致连接过早关闭。我可以通过在缓存中使用if条件来检测重定向是否会发生来绕过这个问题。如果我检测到它会发生,我会在x.cacheable中返回false?

    我的控制器.rb

    caches_action :show, :if => Proc.new { |x| x.cacheable? }
    

    动作控制器.rb

    def cacheable?
      params[:id]>1000 ? true : false
    end
    

    基本上,我需要重定向到另一个控制器,如果参数[:id]<1000,那么可缓存?def会检查这一点,并告诉caches\u在这种特定情况下不要缓存操作。