Azure HTTP请求超时解决方法

时间:2013-09-11 17:34:33

标签: azure tcp virtual-machine windows-server-2008-r2

我们目前在Azure VM实例上托管了一个应用程序。

此应用程序有时会处理长时间运行和空闲的HTTP请求。这会导致问题,因为 Azure将关闭所有闲置时间超过几分钟的连接

我已经看到了一些关于设置较低的TCP keepalive率的建议。我已尝试setting the this rate to around 45 seconds,但我的HTTP请求仍在关闭。

有什么建议吗?我们的VM正在运行Server 2008 R2。

2 个答案:

答案 0 :(得分:2)

作为一个简单的解决方法,我让我的脚本每5秒左右发送一个换行符,以保持连接的活跃。

示例:

set_time_limit(60 * 30);
ini_set("zlib.output_compression", 0);
ini_set("implicit_flush", 1);

function flushBuffers()
{
    @ob_end_flush();
    @ob_flush();
    @flush();
    @ob_start();
}

function azureWorkaround($char = "\n")
{
    echo $char;
    flushBuffers();
}

$html = '';
$employees = getEmployees();
foreach($employee in $employees) {
    html .= getReportHtmlForEmployee($employee);
    azureWorkaround();
}

echo $html;

答案 1 :(得分:1)

Azure负载均衡器现在支持云服务和虚拟机的可配置TCP空闲超时 。可以使用Service Management API,PowerShell或服务模型配置此功能。

有关详细信息,请查看http://azure.microsoft.com/blog/2014/08/14/new-configurable-idle-timeout-for-azure-load-balancer/

上的公告