nginx+flask 用 http2+https 或 http,哪个并发更高,承受的用户更多?

2016-10-12 19:59:45 +08:00
 qweweretrt515

服务器环境: ubuntu , 1Mbit/s 独享, 0.5G 内存, ddr3 , Intel® Xeon® 单核

就是这里最便宜的那个 http://cloud.tmall.com/hostSelection.htm#price

其实是希望给网站加密,但是听说 https 上了,会影响网站性能

这个配置,加密和不加密的情况下,分别能抗住多少用户呢

能举个例子吗

谢谢

3946 次点击
所在节点    问与答
16 条回复
qweweretrt515
2016-10-12 20:13:15 +08:00
产品有 web ,和安卓,苹果 app

不加密就上不了苹果市场,也很危险不安全

加密的话,可选的优化方案有 http2 + Web Worker + 静态资源 cdn
rrfeng
2016-10-12 20:15:22 +08:00
https 并没有很大开销。
比你的 flask 代码少多了,相信我。
qweweretrt515
2016-10-12 20:17:20 +08:00
@rrfeng 谢谢你,因为我知识有限,看了网上的文章,在我的理解中,用了 https 就好比原本裸奔的一个人,背着厚厚的行李行走,再也走不快了

而不用 https 虽然跑的快,但变成了裸奔
rrfeng
2016-10-12 20:30:05 +08:00
@qweweretrt515
这样理解没有错,但是现在的 CPU 跑的很快。

另外,这种问题先上了再说,一种方案搞上去如果不行,那么就去查瓶颈在哪里,这也是学习的过程。
Kilerd
2016-10-12 20:38:41 +08:00
两个都分别搭建一次环境,然后都做一次压力测试不就好了???

而且 个人认为,瓶颈绝对首先出现在 你的 flask 代码中,而不是 http 与 https 的选择上。
qweweretrt515
2016-10-12 20:40:16 +08:00
@Kilerd 谢谢
shiny
2016-10-12 20:46:50 +08:00
1 、可以上 HTTP/2
2 、 https 还能解决运营商插广告的问题
3 、更安全

还是首先来解决哪里来这么多用户的问题先?
XiaoxiaoPu
2016-10-12 20:49:02 +08:00
你的带宽只有 1Mbit/s ,即使跑满对 CPU 的压力也不大。这种情况下, HTTPS 对网站访问的主要影响在于 HTTPS 握手的开销,增加响应时间,对并发量影响应该不大。 HTTPS 优化可以参考 JerryQu 大神的博客: https://imququ.com/
zwh8800
2016-10-13 00:16:16 +08:00
最先扛不住的肯定不是 nginx 。一般并发上来的时候最早挂掉的是数据库。第二个是你的应用( falsk )。

看你服务器的配置,保守估计 100 个并发你数据库就内存不足歇菜了。你可以执行下 `ab -c 100 -n 10000 http://localhost/` 试试。

bat 级别的并发才会考虑 nginx 这一层面的问题。所以 bat 一般都有自己的负载均衡。小公司用 nginx 上 https 没问题,多少人都在用着呢。

解决性能问题第一点是考虑业务场景,第二点是抓主要矛盾、放弃次要矛盾。
msg7086
2016-10-13 02:32:13 +08:00
@zwh8800 这配置,最先扛不住的肯定是上行带宽……
chenset
2016-10-13 08:54:04 +08:00
https 的 ab 测试比 http 的 ab 测试速度降一个数量级. 不严谨的测试结果, 求打脸.
zwh8800
2016-10-13 09:10:20 +08:00
@msg7086 哈哈,我一般不把带宽这种东西算作性能测试的考虑范围
qweweretrt515
2016-10-13 09:30:14 +08:00
@chenset 方便贴出数据吗
qweweretrt515
2016-10-13 09:30:57 +08:00
@zwh8800 谢谢,数据库用的云数据库,好像数据库也可以缓存内容,加速访问
srlp
2016-10-13 21:43:58 +08:00
根本不是个事。或者说,你有这个疑问,证明你的水平还没到需要担心这些问题的时候。
chenset
2016-10-14 09:33:33 +08:00
### Results for http ("ab -n 10000 http://ubuntu904/index.html")

Time taken for tests: 2.664 seconds
Requests per second: 3753.69 (#/sec)
Time per request: 0.266ms
### Results for https ("ab -n 10000 https://ubuntu904/index.html"):

Time taken for tests: 107.673 seconds
Requests per second: 92.87 (#/sec)
Time per request: 10.767ms


#### http://serverfault.com/questions/43692/how-much-of-a-performance-hit-for-https-vs-http-for-apache

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

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

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

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

© 2021 V2EX