HTTP/2 avec WildFly

La possibilité d’activer HTTP/2 a été ajoutée dans la version 9 de WildFly.

Depuis WildFly 10.1

A partir de WildFly 10.1, il n’est plus nécessaire d’ajouter l’extension ALPN, même avec un JDK 8. Il suffit d’activer HTTP/2, ce qui est fait par défaut.

[host:9990 /] /subsystem=undertow/server=default-server/https-listener=https        \
                    :write-attribute(name=enable-http2, value=true)

JDK 8, WildFly 9 ou 10.0

Tout d’abord, pour un JDK 8, il faut ajouter l’extension ALPN de Jetty dans le bootclasspath, en ajouter la ligne ci-dessous dans bin/standalone.conf.

JAVA_OPTS="$JAVA_OPTS -Xbootclasspath/p:alpn-boot.jar"

Ensuite, il faut ajouter un listener HTTPS.

Enfin, on active HTTP/2 sur ce listener.

[host:9990 /] /subsystem=undertow/server=default-server/https-listener=https        \
                    :write-attribute(name=enable-http2, value=true)

Versions d’Undertow

Pour connaitre les détails de la marche à suivre, il faut noter la version d’Undertow embarqué.

  • WildFly 8.2 ⇒ Undertow 1.1.8 (pas de HTTP/2)

  • WildFly 9.0 ⇒ Undertow 1.2.9 (HTTP/2 avec l’extension ALPN)

  • WildFly 10.0 ⇒ Undertow 1.3.15 (HTTP/2 avec l’extension ALPN)

  • WildFly 10.1 ⇒ Undertow 1.4.0 (HTTP/2 <b>sans</b> l’extension ALPN)

  • WildFly 11.0 ⇒ Undertow 1.4.xx (HTTP/2 <b>sans</b> l’extension ALPN)