写了篇文章 - 高性能 Nginx HTTPS 调优 如何为 HTTPS 提速 30%

2020-12-23 10:22:43 +08:00
 KalaSearch

Nginx 应该是应用最广泛的服务器之一了,不管是反代还是负载均衡都有它的身影。

我们也一直用 Nginx 来作反向代理,同时完成一些简单的安全和负责 HTTPS 之类的任务。前段时间有用户提到苹果设备( iOS Safari )上搜索请求慢,因此进入了踩坑之旅。

Nginx 的可配置参数可谓眼花缭乱,而 HTTPS 的配置更需要了解一些底层原理才能知其所以然。

而我们之前在调整一些配置其实没有完全吃透,几乎是看着 stackoverflow 找了个模板来调整。

所以索性这次读了 High Performance Web Browser,同时跟一位有经验的同事一起,把 Nginx 重新调整了一遍,把首次请求的延迟降低了 30% 左右。当然这个数字会随着你的业务和请求数据而变化,但是如果是网站的话,很可能提升会更大

在改配置的时候我配合着 HPBN 做了详细的笔记,顺便整理了出来,写成了这篇文章,希望大家喜欢。

全文请戳 => 高性能 Nginx HTTPS 调优

同时对应的配置也放到了 Github 上,欢迎参考使用 => 高性能 Nginx HTTPS 调优对应配置

图是用 Canva 做的,欢迎随意盗图 :D

9473 次点击
所在节点    程序员
52 条回复
Judoon
2020-12-23 10:42:08 +08:00
"卡拉先生发布于 2020 年 12 月 25 日 | 上次编辑:2020 年 12 月 23 日"

我穿越了?
KalaSearch
2020-12-23 10:43:28 +08:00
一些好的链接推荐在这里

[High Performance Browser Networking]( https://hpbn.co/) - 有点老但是深入浅出把应用层程序员需要关心的 TCP,UDP 讲得很清楚

[Nginx Setting Doc]( http://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_buffer_size) - 官方文档

[how to reduce ssl time of website]( https://stackoverflow.com/questions/36672261/how-to-reduce-ssl-time-of-website) - SO 上一个非常好的讨论

[如何用 CURL debug 延迟问题]( https://help.heroku.com/NY64S5NL/how-do-i-debug-latency-issues-using-curl)
KalaSearch
2020-12-23 10:44:19 +08:00
@Judoon 你没有穿越,这是 markdown 里手写的,我不知道为什么手抽了... 那就提前祝圣诞快乐吧
KalaSearch
2020-12-23 10:44:47 +08:00
@Judoon (上次编辑是 git 抽的时间,所以是准的)
airqj
2020-12-23 11:00:57 +08:00
已收藏 :)
leido
2020-12-23 11:10:55 +08:00
ssl_session_cache 开启了不利于抵御 DDoS 攻击
KalaSearch
2020-12-23 11:17:07 +08:00
@airqj 感谢喜欢 <3
KalaSearch
2020-12-23 11:23:21 +08:00
@leido 是因为可能耗尽连接资源?
fengmumu
2020-12-23 11:32:11 +08:00
收藏+1
Junzhou
2020-12-23 11:35:07 +08:00
ios Safari 上请求慢,nginx 配置 OCSP Stapling 就可以了,因为 ios 上会默认进行 ocsp 实时查询
rihkddd
2020-12-23 11:38:07 +08:00
学习了,两点建议:
1. 使用统一的性能测量方式,文中有时候是平均值有时候是 p95,如果对性能比较敏感应该用比较严格的标准比如 p99.
2. 量化每一个优化措施的收益。
bagheer
2020-12-23 11:38:40 +08:00
为啥你的 kala 搜索一直 beta? 小站想用一下,也不知道你是免费呀还是收费呀, 就一直 beta
KalaSearch
2020-12-23 11:53:17 +08:00
@Junzhou 是的,文中也有提到,感谢
qiayue
2020-12-23 11:53:55 +08:00
好几次了,我想找到你的网站,都去搜索“卡卡搜索”,结果没找到。
直到刚才又看了下你们的 icon 是狗头,所以联想了一下,卡拉是条狗,所以你们的名字是从这里来的吗?
KalaSearch
2020-12-23 11:55:48 +08:00
@rihkddd 两点都非常到位
1. 其实到 P999 都是 50ms 左右,但是有非常少量慢查询,截图 Y 轴会不太好看 :D
2. 是的,应该是这样。文中提到的所有点中,最大的改进是 OCSP 和调整 buffer size
KalaSearch
2020-12-23 11:57:33 +08:00
@qiayue 哈哈哈,好多人这么问,所以我们干脆就... 把狗头当 icon 了

但讲真,我们连取名都写了篇 blog: https://kalasearch.cn/blog/how-to-name-your-startup/
whileFalse
2020-12-23 11:57:51 +08:00
卡拉搜索在 Mac 上与双拼输入法不兼容。输入拼音后按空格无法上屏,依旧是拼音。
KalaSearch
2020-12-23 11:59:39 +08:00
@bagheer 是收费的。实在是抱歉,我们还在优化调整一些功能,现在只有被邀请的部分用户,等更成熟一些了会开放自助服务。如果感兴趣的话麻烦你加一下微信,会有商务小哥联系你哒
bagheer
2020-12-23 12:06:28 +08:00
@KalaSearch 啥都没有,试用都不想...把价格表弄上啊,不然现在丢数据啥的没办法说.
现在就像个个人玩票的东西,点一下给我弹个个人二维码...
KalaSearch
2020-12-23 12:07:58 +08:00
@whileFalse 是指电影搜索的 demo 吗?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/738117

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX