因此,我们网站的设置是 4 个节点,运行 rails 3 和 nginx 1,它们都使用相同的 GoDaddy 证书。因为我们是一个付费网站,所以我们必须保持 PCI-DSS 合规性,因此必须使用更昂贵的 SSL 密码——我们还强制使用 Rack 的 SSL。我最近切换到了 Linode 的 NodeBalancer(我读到它是一个 HACluster),但我们没有获得理想的性能。
从我读到的内容来看,使用高密码终止节点上的 SSL 似乎是导致性能不佳的原因,但我想彻底一点。我能做些什么吗?我读过关于在 NodeBalancer 之前终止 SSL 的其他方法(例如使用 stud),但我对这些解决方案了解不够。我们当然不想做任何实验性的事情或任何有单点故障的事情。
如果我真的无法加快 SSL 握手速度,我的替代方案是使用安全和不安全的子域来支持 Rails 上的某些页面。我找到了一些指南来介绍这一点,但我的问题是,在这种情况下,让 nginx 处理安全子域上的强制 SSL 是否比让 rails 处理更好?
谢谢!
答案1
我曾在处理每秒数万个 SSL 连接的网站工作过,因此我有一些让 SSL 运行速度更快的技巧:
- 在 Web 机器上终止 SSL,而不是在负载均衡器上终止。将其放在负载均衡器上是一个瓶颈。
- 调整你的密码——是的是高安全性密码不会夺走您的生命。
- 启用各种形式的 SSL 会话缓存;这有利于提高 CPU 性能和客户端响应时间。忽略那些告诉你打开会话亲和性的白痴,使用集中式 SSL 会话存储让所有前端网络服务器都能享受缓存的好处。