我在digitalocean上运行VPS。我每天有500个唯一身份用户。我在Apache上遇到CPU和RAM利用率问题。现在我正在使用Nginx,因为它的重量轻。我的CPU和RAM受到控制,但Nginx仍然不时显示错误消息,我认为这是由于加载/错误配置造成的。
我在日志文件中收到此错误:
ngx_slab_alloc()失败:SSL会话中没有内存
我的nginx服务器有以下配置:
keepalive_timeout 20;
ssl_session_timeout 7200m;
ssl_session_cache shared:SSL:150m;
ssl_stapling on;
ssl_stapling_verify on;
add_header Strict-Transport-Security max-age=15768000;
对于我来说,正确的配置是什么,考虑到我正在使用1Gb RAM运行VPS?
使用数据库会话表(如在Laravel中)会解决我的问题,独立于Nginx配置吗?
答案 0 :(得分:0)
SSL会话与Web应用程序会话几乎没有关系,因此您无法将其卸载到Laravel,即使这会保存您的内存(可疑)。 SSL会话保持连接的加密状态。从this developer thread判断,即使分配成功也会记录此错误,并且讨论了使用配置设置来抑制错误(尽管我无法告知线程是否将其发送到源树)。
但讨论中更有趣的部分是结束:从the specs看来,SSL票证和服务器会话似乎是实现相同事物的两种实现,而使用一种手段则另一种不是。
这是因为票证会将会话信息卸载到客户端而不是保留在服务器上。
总结:减轻问题的最佳方法是enable session tickets和" stimulate"您的用户要升级。