nginx的http20性能太逆天了,HTTPS网站性能优化
背景
我们七层负载层,使用了5台24U+64G内存的物理机支行nginx做https加解密与proxy_pass。每天上下班时段,5台机CPU基本在50%左右,算是计算型。
优化手段:keepalive、换TLS1.2加密算法优化(参考:1,2)等,收效不大。
特别简明一下keepalive选项,不论服务端如何支持,关键是客户端不跟你keep,你玩个屁。
测试过程
- 硬件: 24U+64G物理机2台,1台跟测试,1台跑ngx; 同个局域网内,1GB网卡。
-
nginx -V:
version: openresty/1.9.7.3
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-4) (GCC)
built with OpenSSL 1.0.1e-fips 11 Feb 2013
TLS SNI support enabled
–with-http_v2_module Apache的ab压测工具: yum安装
- boom 是模拟ab的golang实现的压测工具: https://github.com/rakyll/boo
- nghttp2 的 h2load 压测工具: https://github.com/tatsuhiro-t/nghttp2
- CentOS-7 64位
- 测试文件大小:5k,10k的图片,作静态文件的https测试。
- 测试过程简单来看参数:-c=100~3000,-n=1k~10kw 的各种组合, 使用h2load时-m=1~1000都有试过,-m范围大小,对http2结果影响不太大。
图:
放流量图你就明白了:
下图为使用ab与boom时:
此时ab与boom都有使用-k,反正怎么玩,测量与时间都大概在这个水平。
例如以下命令,基本上要跑个半小时:
boom -c 1000 -n 1000000 -allow-insecure https://172.16.9.234/5k.jpg
ab -c 1000 -n 1000000 -khttps://172.16.9.234/5k.jpg
参数不变换成http2时:
h2load -c 1000 -n 1000000 -m1 https://172.16.9.234/5k.jpg
h2load运行结果如下:
再有下图为h2load测试http2时:
千兆网卡,流出流量全满上。
结论
以下结论经过多次重复测试,只代表本人意见,转载请注明from:toontong.
- 同等并发数下,http2.0只用了43秒传输完4.3G数据;而http1.1用40多分钟。
- 单论传输性能提升10倍不止,对我们关键的https CPU占用效果非常明显。
- 对web服务整体性能提升当然没10倍,原因还有连接建立在需时等,更多原因要深研http2原理了。
- go1.6后才有http2-client库的支持,低版本go感觉可以使用https://github.com/tatsuhiro-t/go-nghttp2
- 如果真普及http2.0,对整个互联流量,互联网公司的机器节约,都是大大福音。
').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadeIn(1700); }); });
以上就介绍了nginx的http20性能太逆天了,HTTPS网站性能优化,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Der HTTP-Statuscode 520 bedeutet, dass der Server bei der Verarbeitung der Anfrage einen unbekannten Fehler festgestellt hat und keine genaueren Informationen bereitstellen kann. Wird verwendet, um darauf hinzuweisen, dass bei der Verarbeitung der Anforderung durch den Server ein unbekannter Fehler aufgetreten ist, der durch Serverkonfigurationsprobleme, Netzwerkprobleme oder andere unbekannte Gründe verursacht werden kann. Dies wird normalerweise durch Serverkonfigurationsprobleme, Netzwerkprobleme, Serverüberlastung oder Codierungsfehler verursacht. Wenn Sie auf einen Fehler mit dem Statuscode 520 stoßen, wenden Sie sich am besten an den Website-Administrator oder das technische Support-Team, um weitere Informationen und Unterstützung zu erhalten.

Der HTTP-Statuscode 403 bedeutet, dass der Server die Anfrage des Clients abgelehnt hat. Die Lösung für den HTTP-Statuscode 403 ist: 1. Überprüfen Sie die Authentifizierungsdaten. Wenn der Server eine Authentifizierung erfordert, stellen Sie sicher, dass die richtigen Anmeldedaten angegeben werden. 2. Überprüfen Sie die IP-Adresseinschränkungen Die IP-Adresse des Clients ist eingeschränkt oder nicht auf der Blacklist. Wenn der Statuscode 403 mit den Berechtigungseinstellungen der Datei oder des Verzeichnisses zusammenhängt, stellen Sie sicher, dass der Client über ausreichende Berechtigungen zum Zugriff auf diese Dateien oder Verzeichnisse verfügt. usw.

So implementieren Sie mit NginxProxyManager einen Reverse-Proxy unter dem HTTPS-Protokoll. Mit der Popularität des Internets und der Diversifizierung der Anwendungsszenarien sind die Zugriffsmethoden auf Websites und Anwendungen immer komplexer geworden. Um die Effizienz und Sicherheit des Website-Zugriffs zu verbessern, haben viele Websites damit begonnen, Reverse-Proxys zur Bearbeitung von Benutzeranfragen zu verwenden. Der Reverse-Proxy für das HTTPS-Protokoll spielt eine wichtige Rolle beim Schutz der Privatsphäre der Benutzer und der Gewährleistung der Kommunikationssicherheit. In diesem Artikel wird die Verwendung von NginxProxy vorgestellt

Verstehen Sie die Bedeutung des HTTP 301-Statuscodes: Häufige Anwendungsszenarien der Webseitenumleitung. Mit der rasanten Entwicklung des Internets werden die Anforderungen der Menschen an die Webseiteninteraktion immer höher. Im Bereich Webdesign ist die Webseitenumleitung eine gängige und wichtige Technologie, die über den HTTP-301-Statuscode implementiert wird. In diesem Artikel werden die Bedeutung des HTTP 301-Statuscodes und häufige Anwendungsszenarien bei der Webseitenumleitung untersucht. Der HTTP-Statuscode 301 bezieht sich auf eine permanente Weiterleitung (PermanentRedirect). Wenn der Server die des Clients empfängt

So implementieren Sie den automatischen Sprung von HTTP zu HTTPS mit NginxProxyManager Mit der Entwicklung des Internets beginnen immer mehr Websites, das HTTPS-Protokoll zur Verschlüsselung der Datenübertragung zu verwenden, um die Datensicherheit und den Schutz der Privatsphäre der Benutzer zu verbessern. Da das HTTPS-Protokoll die Unterstützung eines SSL-Zertifikats erfordert, ist bei der Bereitstellung des HTTPS-Protokolls eine gewisse technische Unterstützung erforderlich. Nginx ist ein leistungsstarker und häufig verwendeter HTTP-Server und Reverse-Proxy-Server sowie NginxProxy

Schnelle Anwendung: Praktische Entwicklungsfallanalyse von PHP Asynchroner HTTP-Download mehrerer Dateien Mit der Entwicklung des Internets ist die Funktion zum Herunterladen von Dateien zu einem der Grundbedürfnisse vieler Websites und Anwendungen geworden. In Szenarien, in denen mehrere Dateien gleichzeitig heruntergeladen werden müssen, ist die herkömmliche synchrone Download-Methode oft ineffizient und zeitaufwändig. Aus diesem Grund ist die Verwendung von PHP zum asynchronen Herunterladen mehrerer Dateien über HTTP eine zunehmend verbreitete Lösung. In diesem Artikel wird anhand eines tatsächlichen Entwicklungsfalls detailliert analysiert, wie PHP asynchrones HTTP verwendet.

Häufige Netzwerkkommunikations- und Sicherheitsprobleme und Lösungen in C# Im heutigen Internetzeitalter ist Netzwerkkommunikation zu einem unverzichtbaren Bestandteil der Softwareentwicklung geworden. In C# treten normalerweise einige Netzwerkkommunikationsprobleme auf, z. B. die Sicherheit der Datenübertragung, die Stabilität der Netzwerkverbindung usw. In diesem Artikel werden häufig auftretende Netzwerkkommunikations- und Sicherheitsprobleme in C# ausführlich erläutert und entsprechende Lösungen und Codebeispiele bereitgestellt. 1. Netzwerkkommunikationsprobleme Unterbrechung der Netzwerkverbindung: Während des Netzwerkkommunikationsprozesses kann die Netzwerkverbindung unterbrochen werden, was zu Problemen führen kann

Lösung: 1. Überprüfen Sie den Inhaltstyp im Anforderungsheader. 3. Verwenden Sie das entsprechende Codierungsformat. 5. Überprüfen Sie die serverseitige Unterstützung.
