我们目前在Azure VM实例上托管了一个应用程序。
此应用程序有时会处理长时间运行和空闲的HTTP请求。这会导致问题,因为 Azure将关闭所有闲置时间超过几分钟的连接。
我已经看到了一些关于设置较低的TCP keepalive率的建议。我已尝试setting the this rate to around 45 seconds,但我的HTTP请求仍在关闭。
有什么建议吗?我们的VM正在运行Server 2008 R2。
答案 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/
上的公告