千家信息网

怎么对Nginx支持SSL的性能进行优化

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,这篇文章主要介绍"怎么对Nginx支持SSL的性能进行优化",在日常操作中,相信很多人在怎么对Nginx支持SSL的性能进行优化问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家
千家信息网最后更新 2025年12月02日怎么对Nginx支持SSL的性能进行优化

这篇文章主要介绍"怎么对Nginx支持SSL的性能进行优化",在日常操作中,相信很多人在怎么对Nginx支持SSL的性能进行优化问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"怎么对Nginx支持SSL的性能进行优化"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!


初始化服务器

这个web服务器运行在一个ec2 t1.micro 环境.我选择 nginx + php5-fpm 来运行php页面,出于安全考虑我使用ssl.
测试性能

我使用blitz.io来进行压力和性能测试. 下面的是我压力测试的命令. 功能是在60秒内逐渐增加用户. 在整个过程中,blitz.io 每秒创建一个请求并增加4个用户(rise/run = 260/60).

复制代码 代码如下:

-p 1-250:60 https://mydomian.com

详细的解释

对于爱好者来说,这里是详细的解释。我将会在下述章节带领你重温我的思考过程。
如果编辑了nginx配置,那么重启nginx服务器。如果编辑了php5-fpm配置,那么重启服务。

尝试 #1: 增强硬件

对于改善性能,我本能的想法是增强服务器硬件,希望一切都会正常工作。我将ec2实例从t1.micro升级到了c1.medium(针对高流量服务器进行了优化,而不是通用服务器)。

在此之后,我运行了blitz.io负载测试。这是结果的截图

服务器的峰值性能可以达到每秒50个成功命中。随着负载的继续增加,超时的数量上升,而命中的数量下降。

尝试 #2: 评效cpu性能

我重新执行了测试,同时在后台运行htop。我注意到两个cpu的利用率不超过13%。内存使用了300mb。看起来服务器没有充分利用。所以我做了下述改变。我编辑了/etc/ngnix/nginx.conf

复制代码 代码如下:

worker_processes 2;

尝试 #3, #4, #5: 微调 nginx + php5-fpm

在下述尝试中,我改变了下述值,仍然获得跟尝试 #1同样的结果。

尝试 #3

复制代码 代码如下:

/etc/ngnix/nginx.conf

worker_processes 2;
events {
worker_connections 19000;
multi_accept on;
}
...

_________

尝试 #4

复制代码 代码如下:

/etc/ngnix/nginx.conf

worker_processes 2;
events {
worker_connections 19000;
multi_accept on;
}
http {
gzip on;
gzip_disable "msie6";

gzip_min_length 1000;
gzip_proxied expired no-cache no-store private auth;
gzip_types text/plain application/xml application/javascript text/css application/x-javascript;

}
...

________

尝试 #5
我没有取消尝试 #4的改变

复制代码 代码如下:

/etc/php5/fpm/pool.d/www.conf

pm.max_children = 160
pm.start_servers = 24
pm.min_spare_servers = 20
pm.max_spare_servers = 35
pm.max_requests = 1500

尝试 #6: 部署另外一台服务器


我还有另外一台linode服务器。具有1.5gb的内存和8个cpu。我复制所有nginx和php5-fpm的设置到这台服务器上。

这是我使用blitz.io进行压力测试的命令

复制代码 代码如下:

-p 1-250:60 http://labs.mydomian2.com

这是结果:

linode服务器非常棒!我在想"linode比ec2好么?"。在我决定沿着这条思路走下去,将代码迁移到linode之前,我想要确保两台服务器之间没有差别。


尝试 #7: 大启示

我搜索了一下,发现nginx有些ssl相关的问题。默认nginx使用dhe算法创建密码(cipher)。禁用该算法将会提升性能。

所有我编辑/etc/nginx/nginx.conf去掉了kedh密码算法。

复制代码 代码如下:

worker_processes 2;
events {
worker_connections 1024;
}
http {
gzip on;
gzip_disable "msie6";

gzip_min_length 1000;
gzip_proxied expired no-cache no-store private auth;
gzip_types text/plain application/xml application/javascript text/css application/x-javascript;
ssl_ciphers all:!kedh!adh:rc4+rsa:+high:+medium:+low:+sslv2:+exp;

}
...

我重现执行了原来的压力测试:

复制代码 代码如下:

-p 1-250:60 https://mydomian.com

这是结果:

真的有效!!!!

尝试 #8: 我真的需要增强硬件

太棒了,ec2与linode在性能上很接近。但是我真的需要c1.medium实例来获得这种性能么?可能不需要... 所以我将ec2的实例类型改回了t1.micro。

i因为micro实例只有一个cpu,所有我在/etc/nginx/nginx.conf中减少了worker_processes。

复制代码 代码如下:

worker_processes 1;
...

这是结果:

到此,关于"怎么对Nginx支持SSL的性能进行优化"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

代码 服务 服务器 性能 尝试 测试 结果 这是 支持 压力 实例 学习 运行 硬件 算法 内存 命令 密码 数量 更多 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 洋浦三都阿迪力软件开发工作室 银行招收软件开发的 厦门税务ukey服务器地址 高速公路服务器有加冷却液的吗 宿豫区网络技术有限公司 传奇db数据库英文名字 厦航软件开发面经笔经 金融网络安全小常识ppt 数据库表里字段的值相加 北京蓝果网络技术怎么样 手机app软件开发语言 数据库与传统的文件系统有何优势 软件开发和移动应用开发 epc数据库安装失败 原神国际服务器亚服 聊城蜘蛛网络技术有限公司 三级网络技术怎么学习 1.7.2 服务器地图 信息网络安全的三个时段划分 荒野行动进游戏服务器连接半天 linux 数据库迁移 网络安全让我们学到了什么 全境封锁服务器安全吗 申请网络安全服务能力评定 密云区综合网络技术推广经验丰富 河南超频服务器解决方案 北大软微电子信息网络安全 服务器的安全排查报告 双路服务器有用吗 陕西省中小学网络安全课程
0