Eine schrittweise Anleitung zum Einrichten von HTTP2 in Apache Tomcat
Die neueste Version von Tomcat 2.x bietet vollständige HTTP9-Unterstützung. HTTP / 2 ist schnell, viel schneller als HTTP / 1.1.
Wenn Sie den Inhalt von Tomcat aus direkt an den Browser senden (ohne einen Webserver zu durchlaufen), kann die Implementierung von HTTP / 2 die Ladezeit der Anwendung drastisch reduzieren und die Leistung insgesamt verbessern. Es wird empfohlen, dies in einer Nicht-Produktionsumgebung zu testen, um sicherzustellen, dass sich die Anwendung wie erwartet verhält.
Lesen Sie dies, wenn Sie es auf einem Webserver wie Apache oder Nginx aktivieren möchten.
Pre-requisite
Tomcat muss vor der Implementierung von HTTP2 mit einem SSL / TLS-Zertifikat gesichert werden. Wenn Sie Hilfe bei der Implementierung benötigen, lesen Sie dieses Handbuch.
Implementing HTTP/2 on Tomcat
Hinweis: Erstellen Sie vor der Änderung eine Sicherungskopie der Konfigurationsdateien, damit Sie sie wiederherstellen können, wenn ein Fehler auftritt.
- Melden Sie sich bei Tomcat Server an und wechseln Sie in den Installationsordner
- Gehen Sie zu
conf
Mappe - Ändern Sie die Datei server.xml mit
vi
oder Ihr Lieblingseditor - Fügen Sie im SSL-Connector Folgendes hinzu
<UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
Insgesamt sollte es wie folgt aussehen.
<Connector port="443" protocol="org.apache.coyote.http11.Http11AprProtocol"
maxThreads="150" SSLEnabled="true" >
<UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
<SSLHostConfig>
<Certificate certificateKeyFile="conf/key.pem"
certificateFile="conf/cert.pem"
certificateChainFile="conf/chain.pem"
type="RSA" />
</SSLHostConfig>
</Connector>
Oben ist meine Laborkonfiguration aufgeführt. Wenn Sie sie also kopieren, vergessen Sie nicht, die Konfiguration an Ihre Umgebungsanforderungen anzupassen - insbesondere an den Port, wenn Sie einen benutzerdefinierten Pfad und einen Zertifikatpfad verwenden.
- Starten Sie die Tomcat-Instanz neu, indem Sie in den Ordner bin gehen und die folgenden Skripts ausführen
./shutdown.sh
./startup.sh
- Prüfen Sie die
catalina.out
Protokoll, und Sie sollten die folgende Bestätigung sehen, die für die Unterstützung konfiguriert isth2
24-Feb-2019 19:43:47.559 INFO [main] org.apache.coyote.http11.AbstractHttp11Protocol.configureUpgradeProtocol The ["https-openssl-apr-443"] connector has been configured to support negotiation to [h2] via ALPN
Dies bedeutet, dass Tomcat bereit ist, Anforderungen über das HTTP2-Protokoll zu bearbeiten.
Testing if Tomcat is serving over H2
Woher wissen Sie, ob es wie erwartet funktioniert?
Es gibt mehrere Möglichkeiten, dies zu testen.
Chrome verwenden
Nützlich zum Testen von Intranet-Anwendungen.
- Starten Sie Google Chrome
- Öffnen Sie die Entwicklertools, indem Sie F12 drücken
- Gehen Sie zur Registerkarte Netzwerk
- Greifen Sie auf Ihre Tomcat-Anwendung zu und achten Sie darauf Protokoll Überblick
Und wie Sie sehen, wurden die Anfragen mit h2 bearbeitet.
Using Logs
Sehen Sie sich die Datei access.log an und überprüfen Sie die eingehenden Anforderungen.
xx.xxx.xxx.xxx - - [24/Feb/2019:20:59:23 +0000] "GET / HTTP/2.0" 200 11468
xx.xxx.xxx.xxx - - [24/Feb/2019:20:59:23 +0000] "GET /tomcat.css HTTP/2.0" 200 5931
xx.xxx.xxx.xxx - - [24/Feb/2019:20:59:23 +0000] "GET /tomcat.png HTTP/2.0" 200 5103
xx.xxx.xxx.xxx - - [24/Feb/2019:20:59:23 +0000] "GET /bg-button.png HTTP/2.0" 200 713
xx.xxx.xxx.xxx - - [24/Feb/2019:20:59:23 +0000] "GET /bg-upper.png HTTP/2.0" 200 3103
xx.xxx.xxx.xxx - - [24/Feb/2019:20:59:23 +0000] "GET /bg-nav.png HTTP/2.0" 200 1401
xx.xxx.xxx.xxx - - [24/Feb/2019:20:59:23 +0000] "GET /asf-logo-wide.svg HTTP/2.0" 200 27530
xx.xxx.xxx.xxx - - [24/Feb/2019:20:59:23 +0000] "GET /bg-middle.png HTTP/2.0" 200 1918
xx.xxx.xxx.xxx - - [24/Feb/2019:20:59:23 +0000] "GET /favicon.ico HTTP/2.0" 200 21630
Siehst du HTTP / 2.0 wird in jeder Anfrage kategorisiert?
Using Internet-based tools
Wenn Ihre Tomcat-Anwendungs-URL im Internet verfügbar ist, können Sie die folgenden Tools überprüfen.
Fazit
Die Implementierung von H2 auf Tomcat ist unkompliziert. Ich würde dringend empfehlen, Ihre Anwendung nach der Implementierung zu testen, um sicherzustellen, dass keine Nebenwirkungen auftreten.
Wenn Sie sich für die Tomcat-Administration interessieren, lesen Sie dies Online Kurs.