【问题标题】:How do I avoid 502 responses with Plack and Mojolicious?如何使用 Plack 和 Mojolicious 避免 502 响应?
【发布时间】:2015-06-18 09:09:03
【问题描述】:

我已经设置了一个小型 Mojolicious 应用程序在 Plack 后面运行,充当这样的代理:

builder {
      mount "/q" => builder {
          Plack::App::Proxy->new(remote => "http://127.0.0.1:3010")->to_app;
      };
};

我需要以这种方式运行它(而不是直接安装应用程序),因为我需要每天重新加载应用程序几次,原因我无法进入这里。

该应用程序在 hypnotoad 上运行,当我直接点击它时,一切都很好。但是,当通过 plack 代理访问时,我经常会收到 502 响应 - Gateway error: Connection timed out

有趣的是,当我重新加载一两次时,一切似乎都很好,而且我得到了正确的响应。

谁能帮忙解决这个问题?

【问题讨论】:

    标签: perl mojolicious plack


    【解决方案1】:

    Mojolicious 中的默认超时值可能对您的应用程序来说不够高,这可能会导致工作进程被管理器停止,从而导致对 Plack 应用程序的无效响应,从而导致 502。因此,请检查 config settings 的超时并在必要时进行修改。如果您的应用程序负载过重,您可能还需要增加工作人员的数量,尽管我怀疑这不是问题所在。

    更多有用的信息可以在 mojolicious 应用程序日志文件中找到 - 如果您在调试下使用 MOJO_LOG_LEVEL=debug 运行 hypnotoad,那么您将看到连接命中应用程序,如果这确实是问题,则会出现超时。

    重新加载时响应正常表明您的应用程序加载速度可能很慢,或者可能正在填充缓存等。如果没有来自 hypnotoad 服务器的日志条目,很难说

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多