Auteur Sujet: http/2: Mécanisme de négociation http2 vs http1.1 dans un GET https  (Lu 20846 fois)

0 Membres et 1 Invité sur ce sujet

vincent0

  • Client OVH
  • *
  • Messages: 108
  • Montpellier
    • Twitter
http/2: Mécanisme de négociation http2 vs http1.1 dans un GET https
« Réponse #84 le: 15 mai 2018 à 09:19:13 »
Le serveur lafibre.info n'est pas en Debian 9 ?
J'ai monté un serveur en Debian 9 et dans apache le module h2 y est présent et j'ai mis en place du http2 sans soucis (dans docker en plus).

vivien

  • Administrateur
  • *
  • Messages: 29 556
    • Twitter LaFibre.info
http/2: Mécanisme de négociation http2 vs http1.1 dans un GET https
« Réponse #85 le: 15 mai 2018 à 09:35:37 »
Ubuntu server LTS

J'ai ouvert un bug en février 2016 pour avoir http/2 dans Ubuntu 16.04, mais l'équipe sécurité à jugé ça trop risqué, car marqué "Expérimental" par Apache.

Debian a été moins conservateur que Ubuntu pour une fois  ;D (enfin, j'ai souvenir que pour les MicroCode Intel, Debian avait mis en prod avant Ubuntu aussi)

Plus Ubuntu prend de la bouteille, plus ils sont stricts sur la sécurité et moins il y a de différence avec Debian. Il faudrait que je revérifie les performances TCP, dans le passé Debian était à la traine :

Débit moyen sur un téléchargement d'un fichier de 100 Mo en fonction de la latence :


Conclusion : Ubuntu server 14.04 et 14.10, Gentoo Linux et Windows Server 2012 font la courses en tête, avec un avantage pour Ubuntu Server.

Red Hat Entreprise Linux Server 7, SUSE Linux Entreprise Server 12 et Debian 7 sont en retrait au niveau des performances.

FreeBSD 10 à lui des performances proche du premier groupe avec une faible latence (< 10ms) mais proche du second groupe avec des latences > 30ms.


vincent0

  • Client OVH
  • *
  • Messages: 108
  • Montpellier
    • Twitter
http/2: Mécanisme de négociation http2 vs http1.1 dans un GET https
« Réponse #86 le: 15 mai 2018 à 12:08:11 »
Effectivement avant d'avoir Ubuntu 18.04, il n'y avait pas de module H2 dans Apache...
Par contre dans cette dernière version, Tomcat ne fonctionne plus avec Java 8, ce qui est problématique pour bon nombre d'appli assez anciennes qui demandent encore cette version pour pouvoir être exécutées.

Sinon j'ai pu facilement migrer de ubuntu à debian avec docker, car il suffit de remplacer dans le "FROM" de ubuntu à debian - moyennant quelques adaptations sur les versions disponibles (de php par exemple) et de noms de packages (mysql pour citer un exemple).

On a plus systématiquement les dernières versions, pas les mises à jour à faire tous les 6 mois...

vivien

  • Administrateur
  • *
  • Messages: 29 556
    • Twitter LaFibre.info
http/2: Mécanisme de négociation http2 vs http1.1 dans un GET https
« Réponse #87 le: 15 mai 2018 à 13:03:20 »
Ubuntu 18.04 utilisé par défaut OpenJDK 10 avec migration d'ici septembre sur OpenJDK 11 qui est LTS (j’espère qu'il y aura le même type d’entorse pour proposer OpenSSL avec TLS v1.3 sans attendre Ubuntu 20.04).

Par contre pour ton besoin de veille version, OpenJDK 8 est disponible dans Universe, avec en bonus des mises à jour de sécurité jusqu'en avril 2021.

vincent0

  • Client OVH
  • *
  • Messages: 108
  • Montpellier
    • Twitter
http/2: Mécanisme de négociation http2 vs http1.1 dans un GET https
« Réponse #88 le: 15 mai 2018 à 14:00:34 »
Oui, j'ai vu et testé :
- avec OpenJDK 8 : tomcat ne démarre pas (erreur rencontrée et déjà postée sur launchpad : https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=895866 - https://bugs.launchpad.net/ubuntu/+source/tomcat8/+bug/1766882)
- avec le JDK 10, c'est mon appli qui marche plus...

En fait, il me faudra un peu de courage pour la mettre à jour - sauf si d'ici là, je décide de tout recoder en Go...

buddy

  • Expert
  • Client Bbox fibre FTTH
  • *
  • Messages: 8 125
  • Mougins (06)
http/2: Mécanisme de négociation http2 vs http1.1 dans un GET https
« Réponse #89 le: 15 mai 2018 à 15:12:37 »

Sinon j'ai pu facilement migrer de ubuntu à debian avec docker, car il suffit de remplacer dans le "FROM" de ubuntu à debian - moyennant quelques adaptations sur les versions disponibles (de php par exemple) et de noms de packages (mysql pour citer un exemple).

On a plus systématiquement les dernières versions, pas les mises à jour à faire tous les 6 mois...

Sur Ubuntu LTS, justement tu n'as pas à faire les mises à jour tous les 6 mois.. (c'est le but des LTS)

Ubuntu LTS a le même rythme que debian.
Une version majeure en avril les années paires.

vivien

  • Administrateur
  • *
  • Messages: 29 556
    • Twitter LaFibre.info
http/2: Mécanisme de négociation http2 vs http1.1 dans un GET https
« Réponse #90 le: 08 septembre 2018 à 13:13:32 »
A noter que http/2 n'est plus compatible avec le MPM Prefork sous Apache 2.4.27 et supérieur.

Les change log d’Apache 2.4.27 indique juste *) COMPATIBILITY: mod_http2: Disable and give warning when using Prefork. The server will continue to run, but HTTP/2 will no longer be negotiated. [Stefan Eissing]

L'erreur dans les log Apache2 :
[Sat Sep 08 11:24:08.260643 2018] [http2:warn] [pid 12860] AH10034: The mpm module (prefork.c) is not supported by mod_http2. The mpm determines how things are processed in your server. HTTP/2 has more demands in this regard and the currently selected mpm will just not do. This is an advisory warning. Your server will continue to work, but the HTTP/2 protocol will be inactive.

Le MPM prefork n'est aujourd'hui choisi que si vous exécutez des moteurs de traitement qui ne sont pas préparés pour le multithreading (par exemple qui se crashent lorsque plusieurs requêtes arrivent) => En conséquence les clients tels que les navigateurs internet envoient de nombreuses requêtes au même moment et le MPM prefork ne traitera qu'une requête à la fois par connexion. Si l'une d'entre elles est longue à traiter (ou implique une longue interrogation), les autres requêtes seront mises en attente.

Bref prefork, n’était adapté pour http/2 et j’imagine qu’il y a eu des cas où les clients n’appréciaient pas son comportement, d’où un retrait du http/2 pour ce MPM.

La solution est de basculer sur le MPM event et si PHP est nécessaire, il faut utiliser php7.x-fpm

http2 explained de Daniel Stenberg (l'auteur de curl) est un excellent document pour démarrer l'étude de HTTP/2. Ce document est comme ce forum couvert par la licence Creative Commons Attribution 4.0
(cliquez sur la miniature ci-dessous - le document est au format PDF)

 

Mobile View