我在 Amazon EC2 微型实例上运行 Nginx,其中有一些后端节点进程和 mongodb。
最近,我在大约 40 小时内获得了大约 5k 次点击,过了一会儿,SSL 站点在请求时挂起了,chrome 返回超时。
我重启了虚拟机,网站确实可以加载,但现在请求 SSL 网站时仍然挂起。奇怪的是,Chrome 还说网站的证书无效,但据我所知,证书是有效的(在发生这一切之前也是有效的)。
关于 SSL 挂起的原因,您有什么想法吗?
(重启之前或之后我都没有编辑配置)。
答案1
我会非常谨慎地在微型实例上执行任何 CPU 密集型操作。由于 CPU 资源是按需使用的,如果/当你执行一些耗时较长的操作时(不必那如果超过该时间,您的处理能力将受到限制。您将能够在运行时看到这种情况,即 CPU 周期被盗vmstat
或top
(%st 是要查找的列)。
因此,下次当 nginx 没有响应时,请检查是否正在获取被盗周期。
在 EC2 上小的实例(或更好),CPU资源得到保证。
答案2
存在吗/dev/urandom
?因为如果不存在,SSL 握手/协商块/dev/random
将改为读取。这对微型实例来说确实很糟糕。我们之前通过在 EC2 微型实例上使用 Ubuntu 11.10 避免了这个问题。