服务器性能(HAProxy、Nginx、SSL)

服务器性能(HAProxy、Nginx、SSL)

最近我一直在努力尝试找出我们环境的性能瓶颈所在。

环境(每台服务器都是 Linux VM、8 核、32 GB RAM):

负载平衡:50

Web 服务器 (rsync): 51, 52, 54

数据库(MySQL 5.6 master master):56、58

我设置了一个负载平衡环境,使用 HAProxy 进行负载平衡,并使用 Nginx 进行 SSL 终止。.50. HAProxy 监听端口 80 并将流量定向到...51、52 ​​或 54。它还监听端口 3306,并在 .._.56 和 58 之间引导流量,以实现数据库负载平衡。Nginx 监听端口 443,并处理 SSL 握手,同时将实际流量转发到同一台机器上的端口 80,由 HAProxy 处理。

该设置以约 1000/秒的速度处理非 SSL 连接,但 SSL 连接以约 300/秒的速度处理。

我最近通过将我们的 HAProxy 版本升级为可以处理 SSL 终止的版本来更改环境。HAProxy 现在监听端口 80 和端口 443,在后者的情况下处理 SSL 握手,并将流量转发到 Web 服务器:51、52 ​​和 54。性能大致保持不变,但配置要简单得多。

我查看了负载平衡器上的 top,无论是端口 80 还是 443 流量,服务器上似乎都几乎没有任何负载。正如预期的那样,在我的端口 80 测试期间,Web 服务器受到了重击,但在 443 测试期间,它们几乎没有负载。

您是否知道有什么方法可以增加我们的 SSL 连接的响应时间?

欢迎提供任何提示或建议,我希望获得尽可能多的性能。

谢谢大家!

答案1

将更快的 SSL 密码放在列表顶部(当然是那些符合您的安全要求的密码)

haproxy 示例

bind *:443 ssl crt /etc/ssl/... ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS:!AES256 prefer-server-ciphers ... 

我在 nginx 实例上的设置如下

ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS:!AES256;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;

您可以测试平衡器上可用的 SSL 密码的速度,例如

$ openssl speed

相关内容