我可以帮助您翻译。这段内容是关于编程的。
所有连接都会一直保持在已建立状态(至少30分钟)。ELB的默认空闲超时时间为60。这意味着有人正在从ffserver接收流(连接处于活动状态)。
编辑:看起来将经典负载均衡器更改为应用程序负载均衡器解决了问题。我不知道如何解释这种行为。期待AWS社区的回答- AWS论坛
我有一个带有Apache反向代理和ffserver流媒体服务器的EC2实例。在EC2实例前面有一个(经典)ELB,作为SSL终止点。
Apache配置十分简单:
<Location "/mp3/">
ProxyPass http://127.0.0.1:8081/ DisableReuse=On KeepAlive=Off
ProxyPassReverse http://127.0.0.1:8081/
SetEnv force-proxy-request-1.0.1
SetEnv proxy-nokeepalive 1
</Location>
ffserver
用于在互联网上直播音频。在 ffserver
的设置中有一个 MaxBandwidth
选项(默认值为 1000
)。当连接没有正确关闭时,这个设置会成为一个问题。 ffserver
开始响应 503 server too busy
而不是流内容。
如果我直接连接服务器(没有 ELB),一切正常。如果通过 ELB 连接,则在客户端关闭连接时(例如关闭浏览器的标签页)连接不会关闭。
我使用以下命令检查当前的连接:
watch -n 2 'netstat -napt | grep 8081'
所有连接都会一直保持在已建立状态(至少30分钟)。ELB的默认空闲超时时间为60。这意味着有人正在从ffserver接收流(连接处于活动状态)。
编辑:看起来将经典负载均衡器更改为应用程序负载均衡器解决了问题。我不知道如何解释这种行为。期待AWS社区的回答- AWS论坛
ping=1
以查看后端是否繁忙。 https://httpd.apache.org/docs/2.4/mod/mod_proxy.html#proxypass - Aleksandar