Un guide étape par étape pour configurer HTTP2 dans Apache Tomcat
La prise en charge complète de HTTP2 est ajoutée à la dernière version de Tomcat 9.x. HTTP / 2 est rapide, beaucoup plus rapide que HTTP / 1.1.
Si vous diffusez directement le contenu au navigateur (sans passer par un serveur Web) depuis Tomcat, la mise en œuvre de HTTP / 2 peut réduire considérablement le temps de chargement de l'application et améliorer globalement les performances. Il est recommandé de tester cela dans un environnement hors production pour s'assurer que l'application se comporte comme prévu.
Lisez ceci si vous cherchez à activer dans un serveur Web comme Apache ou Nginx.
Pre-requisite
Tomcat doit être sécurisé avec un certificat SSL / TLS avant d'implémenter HTTP2. Si vous avez besoin d'aide pour la mise en œuvre, consultez ce guide.
Implementing HTTP/2 on Tomcat
Notes: Effectuez une sauvegarde des fichiers de configuration avant la modification afin de pouvoir restaurer en cas de problème.
- Connectez-vous au serveur Tomcat et accédez au dossier d'installation
- Cliquez sur
conf
dossier - Modifiez le fichier server.xml en utilisant
vi
ou votre éditeur préféré - Ajoutez ce qui suit dans le connecteur SSL
<UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
Dans l'ensemble, cela devrait ressembler à ci-dessous.
<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>
Ci-dessus se trouve la configuration de mon laboratoire, donc si vous la copiez, n'oubliez pas d'ajuster la configuration en fonction des exigences de votre environnement - en particulier le port si vous utilisez un chemin personnalisé et un certificat.
- Redémarrez l'instance Tomcat en allant dans le dossier bin et exécutez les scripts suivants
./shutdown.sh
./startup.sh
- Vérifiez la
catalina.out
log, et vous devriez voir la confirmation suivante qui est configurée pour prendre en chargeh2
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
Cela signifie que Tomcat est prêt à servir les requêtes via le protocole HTTP2.
Testing if Tomcat is serving over H2
Comment savoir si cela fonctionne comme prévu?
Il existe plusieurs façons de tester cela.
Utilisation de Chrome
Utile pour tester les applications Intranet.
- Lancer Google Chrome
- Ouvrez les outils de développement en appuyant sur F12
- Allez dans l'onglet réseau
- Accédez à votre application Tomcat et faites attention à Passerelle colonne
Et, comme vous pouvez le voir, les demandes ont été servies en utilisant h2.
Using Logs
Regardez le fichier access.log et examinez les demandes entrantes.
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
Est-ce que tu vois HTTP / 2.0 est catégorisé dans chaque demande?
Using Internet-based tools
Si l'URL de votre application Tomcat est disponible sur Internet, vous pouvez comparer les outils suivants.
Conclusion
La mise en œuvre de H2 sur Tomcat est simple. Je recommande fortement de tester la mise en œuvre de votre application pour vous assurer qu'il n'y a pas d'effets secondaires.
Si vous souhaitez apprendre l'administration de Tomcat, consultez ceci Cours en ligne.