Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 混合集群与多应用问题_Ruby On Rails_Apache_Mongrel_Soap4r - Fatal编程技术网

Ruby on rails 混合集群与多应用问题

Ruby on rails 混合集群与多应用问题,ruby-on-rails,apache,mongrel,soap4r,Ruby On Rails,Apache,Mongrel,Soap4r,我们正在处理这个问题。我们正在使用一个web服务(使用soap4r)来运行某种搜索,当web服务服务器关闭并且我们的应用程序试图连接到它时,问题就会出现。 此时应用程序无法访问,所有客户都被阻止 我们能做些什么来避免这种情况?是否有可能阻止到被阻止的杂种狗的路由?(我假设apache的代理使用循环algohritm) 谢谢 Roberto在我看来,这可能更像是一个mod_代理问题,而不是Mongrel或Apache的问题-您是否按照所述设置代理超时?使用mod_rewrite重新生成一个对web

我们正在处理这个问题。我们正在使用一个web服务(使用soap4r)来运行某种搜索,当web服务服务器关闭并且我们的应用程序试图连接到它时,问题就会出现。 此时应用程序无法访问,所有客户都被阻止

我们能做些什么来避免这种情况?是否有可能阻止到被阻止的杂种狗的路由?(我假设apache的代理使用循环algohritm)

谢谢
Roberto

在我看来,这可能更像是一个mod_代理问题,而不是Mongrel或Apache的问题-您是否按照所述设置代理超时?

使用mod_rewrite重新生成一个对web服务客户端比Apache的代理超时错误更有用的错误页面。例如,此Apache配置将呈现
maintence.html
(如果存在)。所以你所要做的就是把文件放进去,服务器就会自动进入维护模式

# Check for maintenance file and redirect all requests
RewriteCond %{DOCUMENT_ROOT}/system/maintenance.html -f
RewriteCond %{SCRIPT_FILENAME} !maintenance.html
RewriteRule ^.*$ /system/maintenance.html [L]
您可以将其设置为一个XML文件,使用适当的内容类型,使静态文件看起来像一个web服务响应,本质上是“请等待10分钟,然后重试”,可能具有可配置的等待时间


web:disable任务可能对您有所帮助,因为它需要一个参数来说明站点将不可用多长时间,并在生成
maintence.HTML
文件时将其放入HTML中。

您需要在Soap4R请求上设置一个超时。将connect_timeout属性设置为较小的值。这将导致在代码中处理异常,而不仅仅是挂起请求


您还应该确保在mod_proxy_balancer配置中设置了超时。

您是否使用mod_proxy在Apache和您的混血服务器之间进行通信?