如何使用 Plack 和 Mojolicious 避免 502 响应?
How do I avoid 502 responses with Plack and Mojolicious?
我已经在 Plack 后面设置了一个小型 Mojolicious 应用 运行 作为代理,如下所示:
builder {
mount "/q" => builder {
Plack::App::Proxy->new(remote => "http://127.0.0.1:3010")->to_app;
};
};
我需要 运行 这种方式(而不是直接安装应用程序),因为我需要每天重新加载应用程序几次,原因我无法进入这里。
应用程序运行在催眠蟾蜍上,当我直接点击它时,一切正常。但是,当通过 plack 代理访问时,我经常会收到 502 响应 - Gateway error: Connection timed out
.
有趣的是,当我重新加载一两次时,一切似乎都很好,而且我得到了正确的响应。
谁能帮忙解决这个问题?
Mojolicious 中的默认超时值很可能对您的应用来说不够高,这可能会导致工作进程被管理器停止,从而导致对 Plack 应用的响应无效,从而导致502. 因此检查 config settings 超时并在必要时进行修改。如果您的应用程序负载很重,您可能还需要增加工作人员的数量,但我怀疑这不是这里的问题。
更多有用的信息可以在 mojolicious 应用程序日志文件中找到 - 如果你 运行 hypnotoad 在调试下 MOJO_LOG_LEVEL=debug
然后你会看到连接命中应用程序,然后超时确实是问题
重新加载时响应正常可能表明您的应用程序加载速度缓慢,或者缓存正在填充等。如果没有来自 hypnotoad 服务器的日志条目,很难说
我已经在 Plack 后面设置了一个小型 Mojolicious 应用 运行 作为代理,如下所示:
builder {
mount "/q" => builder {
Plack::App::Proxy->new(remote => "http://127.0.0.1:3010")->to_app;
};
};
我需要 运行 这种方式(而不是直接安装应用程序),因为我需要每天重新加载应用程序几次,原因我无法进入这里。
应用程序运行在催眠蟾蜍上,当我直接点击它时,一切正常。但是,当通过 plack 代理访问时,我经常会收到 502 响应 - Gateway error: Connection timed out
.
有趣的是,当我重新加载一两次时,一切似乎都很好,而且我得到了正确的响应。
谁能帮忙解决这个问题?
Mojolicious 中的默认超时值很可能对您的应用来说不够高,这可能会导致工作进程被管理器停止,从而导致对 Plack 应用的响应无效,从而导致502. 因此检查 config settings 超时并在必要时进行修改。如果您的应用程序负载很重,您可能还需要增加工作人员的数量,但我怀疑这不是这里的问题。
更多有用的信息可以在 mojolicious 应用程序日志文件中找到 - 如果你 运行 hypnotoad 在调试下 MOJO_LOG_LEVEL=debug
然后你会看到连接命中应用程序,然后超时确实是问题
重新加载时响应正常可能表明您的应用程序加载速度缓慢,或者缓存正在填充等。如果没有来自 hypnotoad 服务器的日志条目,很难说