# Http/1, http/2, http/3

**URL:** <https://www.debian-fr.org/t/http-1-http-2-http-3/90838>\
**Category:** Pause Café\
**Tags:** apache\
**Created:** [Janvier 21, 2025, 2:35 UTC](https://www.debian-fr.org/t/http-1-http-2-http-3/90838 "2025-01-21T14:35:04Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![anon36725218](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/8e8cbc/32.png) [@anon36725218](https://www.debian-fr.org/u/anon36725218)\
**Post date:** [Janvier 21, 2025, 2:35 UTC](https://www.debian-fr.org/t/http-1-http-2-http-3/90838/1 "2025-01-21T14:35:04Z")

</div>

Il serait temps pour moi (retardataire) d’activer HTTP/2.

Suite à avoir activer 4 frontaux, à la place de 1 qui pointés sur 2 serveurs Web en arrière plan «&nbsp;backends&nbsp;» et que maintenant il y 4 backends sur 2 «&nbsp;sites physiques&nbsp;» (lieux), j’ai des problèmes de «&nbsp;Proxy Error 502&nbsp;», une erreur Technique – 502 – Le serveur web a reçu une réponse invalide, HTTP 502, 502 Proxy Error..

Donc, j’ouvre ce topic pour mémo sur de la documentation.

### Informations sur les protocoles HTTP / 1.1, HTTP 2, HTTP 3

Par [Grafikart](https://www.youtube.com/@grafikart) : Quelles sont les différences entre HTTP 1, 2 & 3 ?

[![](https://img.youtube.com/vi/tzndixsy51k/maxresdefault.jpg "Quelles sont les différences entre HTTP 1, 2 & 3 ?") ](https://www.youtube.com/watch?v=tzndixsy51k)

Dans ce tutoriel [Grafikart](https://grafikart.fr/) vous propose de découvrir le protocole HTTP et ses évolutions. L’objectif est de comprendre comment ces changements affectent notre manière de concevoir des applications webs.

- 00:00 HTTP1/1
- 05:00 HTTP/2
- 12:40 HTTP/3

* * *

[HTTPS : l’impact sur les temps de chargement](https://www.fasterize.com/fr/blog/https-impact-sur-les-temps-de-chargement/)  
Ce n’est un secret pour personne : les sites en HTTPS sont a priori plus gourmands en ressources que les sites HTTP et la complexité introduite dans la communication entre le serveur et le navigateur peut impacter les temps de chargement. Les questions qui se posent alors sont : à quel niveau les ralentissements se font-ils ? Dans quelle mesure ? Et quelles sont les solutions pour éviter ces ralentissements ?

* * *

[HTTP/2 comparé à HTTP/1.1 : Comment ces protocoles affectent-ils les performances web ?](https://www.cloudflare.com/fr-fr/learning/performance/http2-vs-http1.1/)  
HTTP/2 permet aux développeurs de personnaliser la définition de priorités ou l’ordre de chargement des ressources web. HTTP/2 offre également un certain nombre d’autres améliorations de performances par rapport à HTTP/1.

* * *

[Le protocole HTTP/3 : nouveautés et changements par rapport à HTTP/1 et HTTP/2](https://www.fasterize.com/fr/blog/https-impact-sur-les-temps-de-chargement/)

HTTP est un protocole de transfert hypertexte qui permet d’assurer le transport des données entre client et serveur. Comment sommes-nous passés de HTTP/1 à HTTP/3 ? Pourquoi, et quelles sont les évolutions et les améliorations apportées d’une version du protocole à l’autre ? Voyons ce qui change avec HTTP/3, et comment il permet d’aller vers un web toujours plus rapide et sécurisé.

* * *

[HTTP/3 : fonctionnement et performances web](https://www.fasterize.com/fr/blog/http3-performance-web/)  
Quels sont les avantages de HTTP/3, et comment ce protocole fonctionne-t-il ? Sur le plan technique, en quoi il contribue à améliorer la vitesse de chargement ? On vous explique ce qu’il faut savoir sur le protocole HTTP/3.

Résumons rapidement les épisodes précédents. HTTP/2 a permis des avancées en termes de performance web par rapport à HTTP/1..

[HTTP/3 versus HTTP/2](https://www.quadran.eu/http-3-versus-http-2/)  
Le HTTP/3 plus rapide et plus sécurisé que le HTTP/2 ?

Partir à la découverte des évolutions apportées par HTTP/2.

Cet article fait partie de la série HTTP/2, contenant les articles suivant :

- [HTTP/2 : introduction](https://www.oxiane.com/http2_introduction/)
- [HTTP/2 : en détails](https://www.oxiane.com/http2-en-details/)
- [HTTP/2 : les anciennes pratiques à éviter maintenant](https://www.oxiane.com/http2_anciennes_pratiques_a_eviter/)
- [HTTP/2 : l’API HTTP Client de Java 11](https://www.oxiane.com/http2-api-http-client-de-java-11/)
- [HTTP/2 : Push serveur](https://www.oxiane.com/http2-serveur-push/)
- [HTTP/2 : Push serveur avec Java EE 8](https://www.oxiane.com/http2-server-push-avec-java-ee-8/)

* * *

Passer à HTTP/2 pour améliorer les performances d’utilisation d’une API

> **[Passer à HTTP/2 pour améliorer les performances d’utilisation d’une API |...](https://blog.dcube.fr/2018/07/19/passer-en-http-2-pour-ameliorer-les-performances-dune-api/)**

Lorsque l’on développe ou utilise une API, on souhaite que celle-ci puisse être consommée de la manière la plus performante possible; il existe aujourd’hui une mesure technique relativement simple (quand on en remplit les prérequis), qui ne nécessite quasiment aucun développement et n’introduit pas de risque de régression : passer le protocole de communication entre le client et l’API de HTTP 1.1 à HTTP 2.0.

### INSTALLER/CONFIGURER SUR APACHE HTTP/2

[Installer et activer HTTP2 sur Apache2](https://promatec.digital/blog/2021/03/24/installer-et-activer-http2-sur-apache2/)  
L’avancée majeure est qu’avec ce protocole, les requêtes HTTP2 peuvent être envoyées en rafale durant la même connexion TCP !

[Activer http/2 avec Apache](https://siebert.ovh/serveur_hebergement:apache2:activer_http_2_avec_apache)  
Depuis quelques années maintenant est disponible le http/2, version améliorée du http (plus rapide, supportant l’envoi de requête multiple, etc). Debian Strech ayant les bonnes versions de Apache, Openssl, etc dans les dépôts stables pour pouvoir l’activer, ce qui n’était pas le cas avec Jessie, on va donc voir comment l’activer.

[Apache : Guide HTTP/2](https://httpd.apache.org/docs/2.4/fr/howto/http2.html)  
Ce document est le guide de l’utilisateur de l’implémentation de HTTP/2 dans Apache httpd. Cette fonctionnalité en est au stade de production, et les interfaces et directives devraient donc être dorénavant relativement stables.

[Apache : Module Apache mod\_http2](https://httpd.apache.org/docs/2.4/fr/mod/mod_http2.html)  
Pour mettre en oeuvre les fonctionnalités décrites dans ce document, vous devez activer HTTP/2 en utilisant la directive Protocols. HTTP/2 n’imposant pas de chiffrement, deux protocoles sont disponibles : h2 (HTTP/2 avec TLS) at h2c (HTTP/2 avec TCP).

[Module Apache mod\_proxy\_http2](https://httpd.apache.org/docs/2.4/fr/mod/mod_proxy_http2.html)  
Avertissement : il ne sera effectué aucune tentative de fusion de plusieurs requêtes entrantes HTTP/1 (devant être mandatées vers le même serveur d’arrière-plan) vers des flux HTTP/2 appartenant à la même requête HTTP/2. Chaque requête HTTP/1 entrante sera mandatée vers le serveur d’arrière-plan en utilisant une requête HTTP/2 séparée (tout en réutilisant si possible la même connexion TCP).

* * *

Merci à tous.  
Romain.

---

<div class="post-metadata">

**Author:** ![anon36725218](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/8e8cbc/32.png) [@anon36725218](https://www.debian-fr.org/u/anon36725218)\
**Post date:** [Janvier 22, 2025, 9:44 UTC](https://www.debian-fr.org/t/http-1-http-2-http-3/90838/5 "2025-01-22T09:44:37Z")

</div>

Salut,

j’ai configuré mes serveurs d’arrière plan PHP «&nbsp;backends&nbsp;» en HTTP/2 ; çà fonctionne bien, exemple : [ww1](https://ww1.zw3b.net/) , [ww2](https://ww2.zw3b.net/) et [ww3](https://ww3.zw3b.net/) (dot) ZW3B (dot) Net 😉

J’ai dû supprimé les «&nbsp;`php_value`&nbsp;» et «&nbsp;`php_flag`&nbsp;» de mes «&nbsp;`.htaccess`&nbsp;» pour les ajouter dans le fichier «&nbsp;`.user.ini`&nbsp;» à la racine du/des sites web :

De cette façon (sans les `php_value` ou `php_flag`) :

```auto
root@ww1.lb1.srv.fr.lab3w.com:~ # cat /var/pro/web_sites/zw3b_fr/www/web/.user.ini
########################################################
# SESSION

#php_value session.save_path "/var/pro/web_sites/zw3b_net/www/tmp/"
session.save_path "/var/pro/web_sites/zw3b_net/www/tmp/session/"

#php_flag register_globals off

# SESSION
########################################################

########################################################
# ERREURS AFFCIHAGE

#php_value display_errors 1
#display_errors 1
#php_value track_errors 1
#php_value display_startup_errors 1

#php_flag display_errors 1
#php_flag display_startup_errors 1
#php_flag html_errors 1
#php_flag log_errors 1

#php_flag xdebug.force_display_errors 1
#php_flag xdebug.force_error_reporting on
#php_flag xdebug.show_error_trace on

#php_flag xdebug.default_enable 1
#php_flag xdebug.auto_trace 1

#php_flag xdebug.remote_enable 1
#php_value xdebug.remote_host "your_ip_without_quotes"
#php_value xdebug.remote_port 9000
#php_value xdebug.idekey PHPSTORM
#php_flag xdebug.remote_autostart on

# ERREURS AFFCIHAGE
########################################################

########################################################
# FORMULAIRE UPLOAD

# Augmente la variable upload via formulaire (marche pas pour php5)
#php_value upload_max_filesize 150M
#php_value post_max_size 150M
upload_max_filesize 150M
post_max_size 150M

# Maximum execution time of 300 seconde (default 30)
#php_value max_execution_time 300
max_execution_time 300

# Memory Limit
#php_value memory_limit 128M
memory_limit 128M

########################################################

```

Et, j’ai ajouté dans `/etc/apache2/apache2.conf` ou le `.htaccess` des sites :

```auto
<Files ".user.ini">
    Require all denied
</Files>

```

Ainsi que pour mes serveurs d’extrémité avant «&nbsp;frontends&nbsp;», j’ai aussi configuré en HTTP/2.

[![Capture d'écran 2025-01-22 105726 - www.zw3b.fr - HTTP2](https://www.debian-fr.org/uploads/default/original/2X/a/ad1d3ce65232b2af49f62c31a3e71aafda031cd0.jpeg)](https://howto.zw3b.fr/pub/screens/apache/Capture%20d'%c3%a9cran%202025-01-22%20105726%20-%20www.zw3b.fr%20-%20HTTP2.png)

[![Capture d'écran 2025-01-22 102205 - howto.zw3b.fr - HTTP2](https://www.debian-fr.org/uploads/default/original/2X/c/c7066f522f6d901ae3f84040660d8e2b8a0f2bea.jpeg)](https://howto.zw3b.fr/pub/screens/apache/Capture%20d'%c3%a9cran%202025-01-22%20102205%20-%20howto.zw3b.fr%20-%20HTTP2.png)

Je vois bien dans les logs Apache des «&nbsp;backends&nbsp;» le protocole `"HTTP/2.0" OK` :

```auto
XXX.XX.XXX.183 - - [22/Jan/2025:10:17:06 +0100] "GET /music/deep-house/yousuke-yukimatsu-boiler-room-tokyo HTTP/2.0" 200 11051 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36"

```

Cà charge bien mieux les sites web, (beaucoup) plus rapidement je trouve.

> CF Page → «&nbsp;[Balancer manager](https://howto.zw3b.fr/balancer-manager)&nbsp;», celle du site [¿How to? ‹&nbsp;Or&nbsp;› ¿What to do?](https://howto.zw3b.fr/)  
> Computer documentation on the Art of systems, networks and InterNet solutions.

[![Capture d'écran 2025-01-22 130625 - Apache Load Balancer - www.zw3b.blog - HTTP2 - UK + CA + FR](https://www.debian-fr.org/uploads/default/original/2X/4/4b85d97fc37fbf5a4e50225cd33bfebde36148ab.png)](https://www.zw3b.fr/pub/screens/apache/Capture%20d'%c3%a9cran%202025-01-22%20130625%20-%20Apache%20Load%20Balancer%20-%20www.zw3b.blog%20-%20HTTP2%20-%20UK%20+%20CA%20+%20FR%20.png)  
3 des «&nbsp;Frontends&nbsp;» UK|CA|FR Load balancers → 3 en «&nbsp;backends&nbsp;» OK + 1 Stand By OK - config HTTP/2

Romain → [Mon portfolio](https://portfolio.lab3w.com/) se charge trop rapide 🕶

Bonne journée à toutes et à tous !

Cà claque [Hypertext Transfer Protocol/2 (HTTP2)](https://fr.wikipedia.org/wiki/Hypertext_Transfer_Protocol/2), excellent !

@+

* * *

> TODO Check → Directive `MaxRequestWorkers` :  
> [mpm\_common - Serveur HTTP Apache Version 2.4](https://httpd.apache.org/docs/2.4/fr/mod/mpm_common.html#maxrequestworkers)
> 
> La directive `MaxRequestWorkers` permet de fixer le nombre maximum de requêtes pouvant être traitées simultanément. Si la limite `MaxRequestWorkers` est atteinte, toute tentative de connexion sera normalement mise dans une file d’attente, et ceci jusqu’à un certain nombre dépendant de la directive `ListenBacklog` . Lorsqu’un processus enfant se libèrera suite à la fin du traitement d’une requête, la connexion en attente pourra être traitée à son tour.
> 
> Pour les serveurs non threadés ( _c’est à dire_ utilisant `prefork` ), la directive `MaxRequestWorkers` définit alors le nombre maximum de processus enfants qui pourront être lancés simultanément pour traiter les requêtes. La valeur par défaut est `256` ; si vous l’augmentez, vous devez aussi augmenter la valeur de la directive `ServerLimit` .
> 
> Pour les serveur threadés et hybrides (utilisant _par exemple_ `event` ou `worker` ), `MaxRequestWorkers` définit alors le nombre total de threads qui seront disponibles pour servir les clients. Dans le cas des MPMs hybrides, la valeur par défaut est `16` (directive `ServerLimit` ) multiplié par la valeur `25` (directive `ThreadsPerChild` ). Par conséquent, pour affecter à la directive `MaxRequestWorkers` une valeur qui requiert plus de 16 processus, vous devez aussi augmenter la valeur de la directive `ServerLimit` .
> 
> Le nom de la directive `MaxRequestWorkers` était `MaxClients` avant la version 2.3.13. Cet ancien nom est encore supporté.

HTOP des serveurs ZW3B LAB3W après HTTP/2 - çà consomme des ThreadsPerChild :

[![](https://img.youtube.com/vi/q86Dnxp8Uz4/maxresdefault.jpg "Après avoir installer HTTP/2 - HTOP - Frontends - UK - DE - CA - FR") ](https://www.youtube.com/watch?v=q86Dnxp8Uz4)

J’ajoute çà les stats «&nbsp;Youtubeur&nbsp;» d’une vidéo. Je trouve çà très bizarre, je ne sais quand est-ce qui refresh, si c’est «&nbsp;instantané&nbsp;» c’est bizarre, 1 vue depuis 4h pour la vidéo du dessus.  
[![Capture d'écran 2025-01-22 161442 - Youtube - VideoID q86Dnxp8Uz4 - 4h03](https://www.debian-fr.org/uploads/default/original/2X/b/be9c3d5d9a2cdead0437a2da9aed44d917380b03.png)](https://www.zw3b.fr/pub/screens/youtube-studio/Capture%20d'%c3%a9cran%202025-01-22%20161442%20-%20Youtube%20-%20VideoID%20q86Dnxp8Uz4%20-%204h03.png)  
«&nbsp;_Sur une période initiale de 4 heures 3 minutes_&nbsp;» me disent t’ils, 1 vue.

[![Capture d'écran 2025-01-22 170339 - Youtube - VideoID q86Dnxp8Uz4 - 4h48](https://www.debian-fr.org/uploads/default/original/2X/9/9fe0ab71dd8967b2083dc791644f640f41eafa53.png)](https://www.zw3b.fr/pub/screens/youtube-studio/Capture%20d'%c3%a9cran%202025-01-22%20170339%20-%20Youtube%20-%20VideoID%20q86Dnxp8Uz4%20-%204h48.png)  
«&nbsp;_Sur une période initiale de 4 heures 48 minutes_&nbsp;» me disent t’ils, 2 vues.

😉

* * *

Je vous ajoute ces statistiques «&nbsp;Par jour&nbsp;» et «&nbsp;Par minutes&nbsp;» (style un MRTG toutes les 10min) de mon utilisation de l’[API YouTube Data v3](https://developers.google.com/youtube/v3/docs).

À la dernière minute 2025-01-22 15h20, il y a 13 289 requêtes qui sortent des «&nbsp;iframes&nbsp;» vers [Youtube](https://youtube.com) de mes sites web 😉

Je suis à 1 million 220 mille 117 requêtes depuis 9h ce matin, çà marche encore plus fort en HTTP/2 😉

Vous n’avez pas d’anti-Youtube à priori… 🤪

Depuis le 11.14 j’ai activé 4 Frontaux à la place d’1, j’ai re.re.refais une demande pour une augmentation de pouvoir d’utilisation 😉

[![Capture d'écran 2025-01-22 152719 Quotas Per Days – API et services – ZW3B-App - Youtube](https://www.zw3b.fr/pub/screens/google-api-youtube/Capture%20d%27%c3%a9cran%202025-01-22%20152719%20Quotas%20Per%20Days%20%e2%80%93%20API%20et%20services%20%e2%80%93%20ZW3B-App%20-%20Youtube.png)](https://www.zw3b.fr/pub/screens/google-api-youtube/Capture%20d'%c3%a9cran%202025-01-22%20152719%20Quotas%20Per%20Days%20%e2%80%93%20API%20et%20services%20%e2%80%93%20ZW3B-App%20-%20Youtube.png)

[![Capture d'écran 2025-01-22 152743 Quotas Per Minutes – API et services – ZW3B-App - Youtube](https://www.zw3b.fr/pub/screens/google-api-youtube/Capture%20d%27%c3%a9cran%202025-01-22%20152743%20Quotas%20Per%20Minutes%20%e2%80%93%20API%20et%20services%20%e2%80%93%20ZW3B-App%20-%20Youtube.png)](https://www.zw3b.fr/pub/screens/google-api-youtube/Capture%20d'%c3%a9cran%202025-01-22%20152743%20Quotas%20Per%20Minutes%20%e2%80%93%20API%20et%20services%20%e2%80%93%20ZW3B-App%20-%20Youtube.png)

[![Capture d'écran 2025-01-22 171422 API et services – API et services – ZW3B-App – Console Google Cloud - Homepage 30 day - 977 550 queries + cache system on my ZW3b.App](https://www.zw3b.fr/pub/screens/google-api-youtube/Capture%20d%27%c3%a9cran%202025-01-22%20171336%20API%20et%20services%20%e2%80%93%20API%20et%20services%20%e2%80%93%20ZW3B-App%20%e2%80%93%20Console%20Google%20Cloud%20-%20Homepage%20%201%20day%20-%2060%20000%20queries%20+%20cache%20system%20on%20my%20ZW3b.App%20.png)](https://www.zw3b.fr/pub/screens/google-api-youtube/Capture%20d'%c3%a9cran%202025-01-22%20171336%20API%20et%20services%20%e2%80%93%20API%20et%20services%20%e2%80%93%20ZW3B-App%20%e2%80%93%20Console%20Google%20Cloud%20-%20Homepage%20%201%20day%20-%2060%20000%20queries%20+%20cache%20system%20on%20my%20ZW3b.App%20.png)  
En sachant qu’il y a 86 400 secondes dans une journée.  
Je fais quand même 60 milles et quelques demandes et de «&nbsp;Mise À jour&nbsp;» Youtube par jour 😉  
Malgré que j’ai mis en place un système de cache (sur certaines données, les infos des chaines, sur 12h de cache) pour ne pas «&nbsp;taper&nbsp;» tout le temps, pour chaque internautes ; pour soulager Youtube 😉 Et, pour plus de rapidité sur mes sites «&nbsp;clients&nbsp;» web.

Normalement, j’ai 0% d’erreur ; c’est parce que j’atteins la limite de mes quotas journalier depuis quelques jours.

* * *

Comme je leur ai envoyé (à [Youtube](https://youtube.com)), je suis bloqué depuis le 11 😃 Ils vont me débloquer bientôt, normalement 😇

15-16/02/2025 Limite atteinte à 22h25min 02s ~ 3 004 010 (de 9h du matin le 15)  
14-15/02/2025 Limite atteinte à 23h23min 02s ~ 3 010 000 (de 9h du matin le 14)  
13-14/02/2025 Limite atteinte à 22h50min 02s ~ 3 010 000 (de 9h du matin le 13)  
13/02/2025 Limite atteinte à 2h42min 03s ~ 3 010 000  
12/02/2025 Limite atteinte à 8h21min 03s ~ 3 010 000  
10/02/2025 Limite atteinte à 1h08min 03s ~ 3 010 000  
09/02/2025 Limite atteinte à 1h42min 03s ~ 3 010 000  
03/02/2025 Limite atteinte à 8h12min 03s ~ 3 010 000  
02/02/2025 Limite atteinte à 3h07min 03s ~ 3 010 000  
01/02/2025 Limite atteinte à 4h44min 03s ~ 3 010 000

31/01/2025 Limite atteinte à 8h43min 03s ~ 3 010 000  
30/01/2025 Limite atteinte à 5h01min 03s ~ 3 010 000  
29/01/2025 Limite atteinte à 0h18min 18s ~ 3 010 000  
28/01/2025 Limite atteinte à 1h13min 10s - 2 971 446  
27/01/2025 Limite atteinte à 0h38min 00s - 3 010 961  
25-26/01/2025 Limite atteinte à 23h22min 14s - 3 011 620 (en 13h, de 9h à 23h heure française mon quota atteint)  
25/01/2025 Limite atteinte à 1h29min 02s ~ 3 010 000  
24/01/2025 Limite atteinte à 6h02min 02s ~ 3 010 000  
23/01/2025 Limite atteinte à 2h07min 34s - 2 958 104  
22/01/2025 Limite atteinte à 2h15min 57s - 2 947 072  
21/01/2025 Limite atteinte à 3h17min 35s - 2 927 087  
20/01/2025 Limite atteinte à 4h06min 35s - 2 949 184  
19/01/2025 Limite atteinte à 4h11min 20s - 2 999 867  
18/01/2025 Limite atteinte à 4h09min 48s - 3 007 125  
17/01/2025 Limite atteinte à 3h42min 48s - 3 011 377  
16/01/2025 Limite atteinte à 2h30min 45s - 2 987 624  
15/01/2025 Limite atteinte à 3h34min 15s - 2 947 845  
14/01/2025 Limite atteinte à 1h15min 08s - 3 002 573  
13/01/2025 Limite atteinte à 3h40min 15s - 2 950 286  
12/01/2025 Limite atteinte à 3h07min 37s - 2 829 594  
11/01/2025 Limite atteinte à 8h57min 37s - 2 903 104

Il me faut vos «&nbsp;ID&nbsp;» ADSense les ami·es 😉 Un jour il faudrait en discuter.

Sympa tout çà !

Romain.

* * *

J’aime bien cette journée et le [HTTP/2](https://www.debian-fr.org/t/http-1-http-2-http-3/90838/) → j’ai pris fort en requêtes de transit (de stream) entre mes sites web et Youtube.

[![Capture d'écran 2025-01-22 171422 API et services – API et services – ZW3B-App – Console Google Cloud - Homepage 30 day - 977 550 queries + cache system on my ZW3b.App](https://www.zw3b.fr/pub/screens/google-api-youtube/Capture%20d%27%c3%a9cran%202025-01-22%20174139%20Quotas%20Per%20Minutes%20%e2%80%93%20API%20et%20services%20%e2%80%93%20ZW3B-App%20-%20Youtube.png)](https://www.zw3b.fr/pub/screens/google-api-youtube/Capture%20d'%c3%a9cran%202025-01-22%20174139%20Quotas%20Per%20Minutes%20%e2%80%93%20API%20et%20services%20%e2%80%93%20ZW3B-App%20-%20Youtube.png)  
On voit mieux sur les 7 derniers jour ; je suis passé de ~ 12k à 20k minutes - du style 😉

@+

Bonne fin d’journée à tous !

* * *

Edit : 2025/01/23 à 8h00 : je vais changer de tactique, çà galère trop.

J’ai changé mes DNS (j’ai désactivé les 2 VPS pour mon «&nbsp;.fr&nbsp;» et mon «&nbsp;.tv&nbsp;»

```auto
root@srv.fr.lab3w.com:~ # host www.zw3b.fr
www.zw3b.fr has address 90.5.102.244
www.zw3b.fr has address 158.69.126.137
www.zw3b.fr has IPv6 address 2a01:cb1d:5:af00::1
www.zw3b.fr has IPv6 address 2607:5300:60:9389::1

```

Donc, çà pointe sur mes 2 serveurs FR ou CA (où il y a les «&nbsp;backends&nbsp;»).

1. Quand on arrive sur une des IP FR çà pointe dans les «&nbsp;backends&nbsp;» local au serveur «&nbsp;frontend&nbsp;». donc en France.
2. Quand on arrive sur une des IP CA çà pointe dans les «&nbsp;backends&nbsp;» local au serveur «&nbsp;frontend&nbsp;», donc au Canada.

Çà évite que cela transite par les liens VPN en permanence.

J’ai quand même configuré les serveurs «&nbsp;hors site physique&nbsp;» en mode «&nbsp;parking, de rechange&nbsp;» et/ou «&nbsp;Stand by OK&nbsp;» qui est sollicité que si tous les autres serveurs cibles du jeu de serveurs sont indisponibles.

- [Gestion des indisponibilités (Failover)- Reverse Proxy - Apache HTTP Server Version 2.4](https://httpd.apache.org/docs/2.4/howto/reverse_proxy.html#failover)

Pour le serveur FR :

| Worker URL | Route | RouteRedir | Factor | Set | Status | Elected | Busy | Load | To | From | HC Method | HC Interval | Passes | Fails | HC uri | HC Expr |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| h2://[fc00:5300:60:9389:15:1:a:10] | [ww1.lb1.ipv10.net](http://ww1.lb1.ipv10.net) | | 1.00 | 0 | Init **Spar Ok** | 11 | 0 | 3100 | 12K | 0 | TCP | 5000ms | 2 (0) | 3 (0) | | |
| h2://[fc00:5300:60:9389:15:2:a:10] | [ww2.lb2.ipv10.net](http://ww2.lb2.ipv10.net) | | 1.00 | 0 | Init **Stby Ok** | 17 | 0 | -1200 | 22K | 0 | TCP | 5000ms | 2 (0) | 3 (0) | | |
| h2://[fc01::10:126:42:10] | [ww1.home.lab3w.fr](http://ww1.home.lab3w.fr) | | 1.00 | 0 | Init **Ok** | 81 | 2 | -6900 | 75K | 0 | TCP | 5000ms | 2 (0) | 3 (0) | | |
| h2://[fc01::10:106:42:10] | [w3a.dc.lab3w.fr](http://w3a.dc.lab3w.fr) | | 1.00 | 0 | Init **Stby Ok** | 1 | 0 | 5000 | 0 | 0 | TCP | 5000ms | 2 (0) | 3 (0) | | |

Normalement, çà marche bien mieux.

Et, surtout l’info que je voulais remonter ; c’est QUE «&nbsp;Firefox Nightly&nbsp;» déconne complétement ; il va toujours me chercher «&nbsp;[www.zw3b.fr](http://www.zw3b.fr)&nbsp;» en UK dans mon VPS, çà fait 1 heure que j’ai mis à jour mes DNS dig «&nbsp;google&nbsp;» me retourne les bonnes adresses, depuis Chrome tout fonctionne normalement.

```auto
root@vps.uk.ipv10.net:~ # dig ANY www.zw3b.fr @dns.google

; <<>> DiG 9.18.28-1~deb12u2-Debian <<>> ANY www.zw3b.fr @dns.google
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22692
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;www.zw3b.fr. IN ANY

;; ANSWER SECTION:
www.zw3b.fr. 3600 IN A 158.69.126.137
www.zw3b.fr. 3600 IN A 90.5.102.244
www.zw3b.fr. 3600 IN RRSIG A 8 3 3600 20250222072836 20250123062836 49509 zw3b.fr. nFLZk/xMWDiFjZP9pC+b+6brVNPuvSg9KyAeCgMB/pJd5MCUzSy6Ei2L z33eJJY6ZHwAYoVToSFXiC1L0C0zL4msabvqOmb7hddBy8B9lltNhUXu qsH2SnGBFvtRTfVgQ6sIigkKE/F7BZnoewZKLbvCXcvsRg2opqh6nAIW r/Y=
www.zw3b.fr. 3600 IN AAAA 2607:5300:60:9389::1
www.zw3b.fr. 3600 IN AAAA 2a01:cb1d:5:af00::1
www.zw3b.fr. 3600 IN RRSIG AAAA 8 3 3600 20250222072836 20250123062836 49509 zw3b.fr. scsleopchVmetxRKug/wUtaN8mbKcg8BGcwjje2Zp1+U8G20AUmJVoI2 rBuaL/K5mVDmA3gse2WyGuNOGe4ApNw9RY/6Wk8fH/NKHcRt2U/ImLrJ dQw87LQ48fCbujNyb+bGl4NBJStf/c76jwAOt4intbfO4ArRHO7iaKgv d6Q=

;; Query time: 248 msec
;; SERVER: 2001:4860:4860::8888#53(dns.google) (TCP)
;; WHEN: Thu Jan 23 08:05:20 GMT 2025
;; MSG SIZE rcvd: 462

```

Qui me retourne bien les 2 adresses, celles de France et celles du Canada - il n’y a plus les IP Allemande et de Grande-Bretagne.

* * *

Vu que je parle aussi d’Apache «&nbsp;mod proxy&nbsp;» sur cette page sur HTTP.

###### Je vous ajoute quelques chose de «&nbsp;super important&nbsp;».

Si vous «&nbsp;m’était en place&nbsp;» un proxy reverse, il faut autoriser sur les «&nbsp;backends&nbsp;» seulement l’adresse des «&nbsp;frontends&nbsp;» par précaution.

Le [Contrôle d’accès](https://httpd.apache.org/docs/2.4/fr/howto/access.html) d’Apache 😁

Exemple du VHOST en «&nbsp;backends&nbsp;» :

```auto
<IfModule mod_ssl.c>
<VirtualHost [2607:5300:0060:9389:15:3:a:10]:443 [fc00:5300:60:9389:15:3:a:10]:443 10.103.150.10:443>

        <Location "/">
                # Interdire à tous le monde (par précaution), non obligatoire.
                Require all denied

                # Frontend CA
                Require ip 10.69.126.137
                Require ip fc00:5300:60:9389::1

                # Frontend FR
                Require ip 10.106.42.10
                Require ip fc01::10:106:42:10

                # Frontend DE
                Require ip 10.125.133.51
                Require ip fc00:41d0:701:1100::6530

                # Frontend UK
                Require ip 10.128.171.43
                Require ip fc00:41d0:801:2000::44f9

                # Autoriser les potes qui on le droit d'acceder au backend directement
                # Par exemple sur l'addresss ww3.domain.tld                
                Require ip fc01::172:16:0:142

# Autoriser à tous le monde (for tests)
# Require all granted

        </Location>

[...]

</VirtualHost>
</IfModule>

```

Ça me fait penser aux balises :

```auto
Header set X-Frame-Option: "sameorigin"
Header set X-Content-Type-Options: "nosniff"

```

Bonne journée.

---

<div class="post-metadata">

**Author:** ![anon36725218](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/8e8cbc/32.png) [@anon36725218](https://www.debian-fr.org/u/anon36725218)\
**Post date:** [Janvier 23, 2025, 2:19 UTC](https://www.debian-fr.org/t/http-1-http-2-http-3/90838/6 "2025-01-23T14:19:51Z")

</div>

Salut,

Je voulais vous demander «&nbsp;si vous trouver&nbsp;» çà normal ?

Dans «&nbsp;Chrome&nbsp;» je vois le tag «&nbsp;RemoteClient&nbsp;» avec l’adresse IP de mon serveur «&nbsp;frontend&nbsp;» ?

[![Capture d'écran 2025-01-23 151427 - ZW3B.FR - Chrome RemoteClient Address IP Server](https://www.debian-fr.org/uploads/default/original/2X/4/49d66eb7878389dfdf07c30d01b24debf6f589c3.jpeg)](https://www.zw3b.fr/pub/screens/others/Capture%20d'%c3%a9cran%202025-01-23%20151427%20-%20ZW3B.FR%20-%20Chrome%20RemoteClient%20Address%20IP%20Server.png)

Certes mon site web est «&nbsp;client&nbsp;» de «&nbsp;Google Chrome&nbsp;» mais bon 🤨

Qu’en pensez-vous !?

> _Sinon._
> 
> _Dans mes logs Apache «&nbsp;frontends&nbsp;» et «&nbsp;backends&nbsp;» tout va bien, je vois bien l’adresse IP du «&nbsp;client&nbsp;» (l’internaute)._
> 
> Celle en vert sur l’image (configuration Apache mod `remoteip.conf` pour «&nbsp;Proxy Reverse&nbsp;» - où il faut ajouter le «&nbsp;`header set X-Forwarded-For`&nbsp;» qui permet de pouvoir l’attraper dans les Apaches en arrière-plan «&nbsp;backends&nbsp;» avec un «&nbsp;`Require ip`&nbsp;» ou un «&nbsp;`Allow From`&nbsp;» normalement et pour les logs 😉
> 
> Hors PHP (en PHP, il faut utiliser la fonction «&nbsp;[get\_headers()](https://www.php.net/manual/en/function.get-headers.php)&nbsp;».
> 
> 😉

* * *

D’autres «&nbsp;impression écrans&nbsp;» :

 ![Capture d'écran 2025-01-23 154940 - LaFibre.info - Chrome RemoteClient Address IP Server](https://www.debian-fr.org/uploads/default/original/2X/9/95a0a57b53df73a4890e95fc35ff2af133dd2ce3.png)

 ![Capture d'écran 2025-01-23 154953 Debian-FR.org - Chrome NO RemoteClient Address IP Server](https://www.debian-fr.org/uploads/default/original/2X/0/0a0cdccdcd620a75d02fb9e4dfef505f728098aa.png)

 ![Capture d'écran 2025-01-23 154601 - ZW3B.FR - FF No RemoteClient](https://www.debian-fr.org/uploads/default/original/2X/5/54dd89252151e7247ef58ccf517b0af87b4145c2.jpeg)

**Cà doit être un fait exprès, ils s’en balancent le «&nbsp;navigateur internet&nbsp;» de notre IP, ils veulent les IP des serveurs eux, plutôt logique.**

Alors **comment `unset` cette variable de Chrome**? va savoir ? Seigneur·e·s Debian-FROS ?

* * *

J’ai la console Chrome en français maintenant, je ne sais pas comment … je n’ai même pas «&nbsp;reboot windows&nbsp;».

[![Capture d'écran 2025-01-23 170104 - IPv10.Net - Chrome RemoteClient Address IP Server en FR](https://www.debian-fr.org/uploads/default/original/2X/2/246afef71cac727608b0a44b46ad62c16991d7ee.png)](https://www.zw3b.fr/pub/screens/others/Capture%20d'%c3%a9cran%202025-01-23%20170104%20-%20IPv10.Net%20-%20Chrome%20RemoteClient%20Address%20IP%20Server%20en%20FR.png)

* * *

Vraiment, je n’en peut plus !!

Maintenant y’a carrément plus qu’une seule requête entre #ZW3B et YOUTUBE !  
[![Capture d'écran 2025-01-23 172529 Quotas Per Minutes – API et services – ZW3B-App - Youtube](https://www.debian-fr.org/uploads/default/original/2X/7/788288f5111409f905d835d9057a3072f8ff57c6.png)](https://www.zw3b.fr/pub/screens/google-api-youtube/Capture%20d'%c3%a9cran%202025-01-23%20172529%20Quotas%20Per%20Minutes%20%e2%80%93%20API%20et%20services%20%e2%80%93%20ZW3B-App%20-%20Youtube.png)

Y’a des journées comme celle-ci que je n’aime pas trop !

😉

---

<div class="post-metadata">

**Author:** ![anon36725218](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/8e8cbc/32.png) [@anon36725218](https://www.debian-fr.org/u/anon36725218)\
**Post date:** [Janvier 23, 2025, 6:01 UTC](https://www.debian-fr.org/t/http-1-http-2-http-3/90838/7 "2025-01-23T18:01:06Z")

</div>

**Je n’arrive pas à ouvrir les liens PHPSource avec PHP-FPM**

* * *

J’ai trouvé [çà](https://stackoverflow.com/questions/11085086/php-fpm-is-parsing-phps-instead-of-showing-code-hilighted) pour afficher un PHP Source avec PHP-FPM dans NGINX, çà me paraît surprenant et complètement fou.

Moi, qui faisait un petit lien symbolique :

```auto
 root@lb1.ww1:/home/directory/web/site/ # $ ln -s file.php file.phps

```

**Regarde** mon fichier [https://mywebsite.tld/file.phps](https://mywebsite.tld/file.phps) si tu veut la voir **la source PHP** 😉

Pour ressortir des scripts PHP «&nbsp;à partager&nbsp;» rapidement, c’était simple !

C’est vraiment fou.

* * *

Pour infos j’ai bien la bonne configuration Apache :

```auto
AddType application/x-httpd-php-source phps
AddType application/x-httpd-php php

```

Et dans le `.htaccess`,

```auto
<Files ~ "\.(phps)$">
    Require all granted
</Files>

```

Tiens, çà me fais penser au «&nbsp;SetHandler&nbsp;»…

Recherche : «&nbsp;`SetHandler php-fpm application/x-httpd-php-source`&nbsp;»

- Remi nous fait çà : [Amélioration de PHP-FPM et HTTPD 2.4](https://blog.remirepo.net/post/2014/03/28/Amelioration-de-PHP-FPM-et-HTTPD-2.4), je vais essayer.
- D’autres infos sur : [Module Apache mod\_proxy\_fcgi](https://httpd.apache.org/docs/2.4/fr/mod/mod_proxy_fcgi.html).

* * *

J’arrive à faire çà déjà : [https://ww2.zw3b.blog/zw3bApiClient.class.phps](https://ww2.zw3b.blog/zw3bApiClient.class.phps) (Access denied.)

Avec çà dans le VHOST du «&nbsp;backend&nbsp;» IPv6 only :

```auto
<FilesMatch \.(phps)$>
        Require all granted
        SetHandler "proxy:unix:/var/run/php/php8.2-fpm.sock|fcgi://localhost"
# SetHandler application/x-httpd-php-source
        AddType application/x-httpd-php-source phps

        Order deny,allow
        Deny from all
        Allow from all
</FilesMatch>

```

Comme çà, çà ne télécharge même plus le «&nbsp;PHPSource&nbsp;», on est beau là 😊 🤪

* * *

Note de Moi-même le 2025/01/24 à 8h30 :

J’ajoute ce lien au sujet : [Rewrite Server Web Apache 😆 - #2 by ZW3B](https://www.debian-fr.org/t/rewrite-server-web-apache/90834/2)

**Quelqu’un a une solution, pour les PHPSource avec PHP-FPM ?**

Parce que, c’est très intrusif, le truc, tu clics sur un lien «&nbsp;.phps&nbsp;» et le fichier se télécharge, ce n’est pas «&nbsp;user-friends&nbsp;» comme truc. Çà fait assez peur.

Romain.  
Bonne journée.

* * *

Note de Moi-même le 2025/01/24 à 11h12 :

J’ai trouvé la page de grafikArt : [PHP FPM pour Apache](https://grafikart.fr/tutoriels/php-fpm-689), mais je n’y arrive pas non plus avec ces infos.

**Comment-faire pour faire lire un fichier HTML remake PHP ?**

J’ai bien mon :

```auto
AddType application/x-httpd-php htm html php

```

Exemple : sur ww2 (IPv6 only) →

- [https://ww2.zw3b.blog/clocks.html](https://ww2.zw3b.blog/clocks.html) (version html ← KO)
- [https://ww2.zw3b.blog/clocks.php](https://ww2.zw3b.blog/clocks.php) (version php ← OK)
- [https://ww2.zw3b.blog/clocks.phps](https://ww2.zw3b.blog/clocks.phps) (version phps ← KO)

Et, les `.phps` !?

```auto
root@lb2.ww2:~ # ls -l /var/pro/web_sites/zw3b_blog/www/web/
total 2100
[...]
lrwxrwxrwx 1 root root 10 Oct 23 2023 clocks.html -> clocks.php
-rw-r--r-- 1 1000 1000 72223 Jul 4 2024 clocks.php
lrwxrwxrwx 1 root root 10 Mar 27 2024 clocks.phps -> clocks.php
[...]

```

Yep : Je ne sais pas comment j’ai fais, j’ai le PHPSource accessible… sans colorie syntaxique par contre … je ne vais pas mettre un `highlight_file()` ce n’est pas possible.

Personne n’a de solution, quelqu’un fait un «&nbsp;Hook&nbsp;» pour le module s’il vous plaît !?

J’hallucine, j’arrive à accéder à la source du PHP par le «&nbsp;frontal&nbsp;», çà par dans la «&nbsp;node&nbsp;» «&nbsp;lb2.ww2&nbsp;», le même «&nbsp;backend&nbsp;» que dans l’exemple du dessus :

[![Capture d'écran 2025-01-24 112439. - ZWB3.blog - Clocks.phps](https://www.debian-fr.org/uploads/default/original/2X/c/c41076ace14e883b6877ff642c04ae45e389519b.png)](https://www.zw3b.fr/pub/screens/others/Capture%20d'%c3%a9cran%202025-01-24%20112439.%20-%20ZWB3.blog%20-%20Clocks.phps.png)

Je ne comprends pas ?

* * *

Bon, on va «&nbsp;commencer&nbsp;» par le module [PHP-FPM - HTTPD - Apache Software Foundation](https://cwiki.apache.org/confluence/display/httpd/PHP-FPM) :

Sur « ww1 » IPv6 only en php7.3-fpm) → [https://ww1.zw3b.blog/clocks.phps](https://ww1.zw3b.blog/clocks.phps)

```auto
root@lb1.ww1:~ # cat /etc/apache2/conf-enabled/php7.3-fpm.conf
# Redirect to local php-fpm if mod_php is not available
<IfModule !mod_php7.c>
<IfModule proxy_fcgi_module>
    # Enable http authorization headers
    <IfModule setenvif_module>
    SetEnvIfNoCase ^Authorization$ "(.+)" HTTP_AUTHORIZATION=$1
    </IfModule>

    <FilesMatch ".+\.ph(ar|p|tml)$">
        SetHandler "proxy:unix:/run/php/php7.3-fpm.sock|fcgi://localhost"
    </FilesMatch>
    <FilesMatch ".+\.phps$">
        # Deny access to raw php sources by default
        # To re-enable it's recommended to enable access to the files
        # only in specific virtual host or directory
        Require all denied
    </FilesMatch>
    # Deny access to files without filename (e.g. '.php')
    <FilesMatch "^\.ph(ar|p|ps|tml)$">
        Require all denied
    </FilesMatch>
</IfModule>
</IfModule>

```

Sur « ww2 » (IPv6 only en php8.2-fpm) → [Clocks :-: ZW3B](https://ww3.zw3b.blog/clocks.phps).

```auto
root@lb2.ww2:~ # cat /etc/apache2/conf-enabled/php8.2-fpm.conf

# Redirect to local php-fpm if mod_php is not available
<IfModule !mod_php8.c>
<IfModule proxy_fcgi_module>
    # Enable http authorization headers
    <IfModule setenvif_module>
    SetEnvIfNoCase ^Authorization$ "(.+)" HTTP_AUTHORIZATION=$1
    </IfModule>

    # Using (?:pattern) instead of (pattern) is a small optimization that
    # avoid capturing the matching pattern (as $1) which isn't used here
    <FilesMatch ".+\.ph(?:ar|p|tml)$">
        SetHandler "proxy:unix:/run/php/php8.2-fpm.sock|fcgi://localhost"
    </FilesMatch>
# The default configuration works for most of the installation, however it could
# be improved in various ways. One simple improvement is to not pass files that
# doesn't exist to the handler as shown below, for more configuration examples
# see https://wiki.apache.org/httpd/PHP-FPM
# <FilesMatch ".+\.ph(?:ar|p|tml)$">
# <If "-f %{REQUEST_FILENAME}">
# SetHandler "proxy:unix:/run/php/php8.2-fpm.sock|fcgi://localhost"
# </If>
# </FilesMatch>
    <FilesMatch ".+\.phps$">
        # Deny access to raw php sources by default
        # To re-enable it's recommended to enable access to the files
        # only in specific virtual host or directory
        Require all denied
    </FilesMatch>
    # Deny access to files without filename (e.g. '.php')
    <FilesMatch "^\.ph(?:ar|p|ps|tml)$">
        Require all denied
    </FilesMatch>

    # MY TEST FOR PHP SOURCE
    <FilesMatch ".+\.phps$">
        Require all granted
        SetHandler "proxy:unix:/run/php/php8.2-fpm.sock|fcgi://localhost"
# SetHandler "proxy:unix:/run/php/php8.2-fpm.sock"
# SetHandler "proxy:fcgi://localhost"
    </FilesMatch>
</IfModule>
</IfModule>

```

Dans Firefox/136.0 :

- ww1 (IPv6 only en php7.3-fpm) → m’affiche un truc dégueu  
(pourtant sur `.phps` → `Require all denied`)
- ww2 (IPv6 only en php8.2-fpm) → accès denied  
(pourtant sur `.phps` → `Require all granted`)

Dans Chrome/132.0.0.0 :

- ww1 (IPv6 only en php7.3-fpm) → m’affiche le code - sans colorie syntaxique  
(pourtant sur `.phps` → `Require all denied`)
- ww2 (IPv6 only en php8.2-fpm) → accès denied  
(pourtant sur `.phps` → `Require all granted`)

CF les configurations dans les 2 fichiers du dessus : `php7.3-fpm.conf` `php8.2-fpm.conf` sur «&nbsp;ww1&nbsp;» et «&nbsp;ww2&nbsp;» réciproquement.

→ T’es sûr ton `FilesMatch`, il fonctionne «&nbsp;poto&nbsp;» ?  
Pourtant `FilesMatch` «&nbsp;tout ou/et n’importe quoi&nbsp;» `.phps` çà me paraît bien.

Moi, j’ai mis çà pour `lb2.ww2` en `php8.2-frm`

```auto
    # MY TEST FOR PHP SOURCE
    <FilesMatch ".+\.phps$">
        Require all granted
        SetHandler "proxy:unix:/run/php/php8.2-fpm.sock|fcgi://localhost"
# SetHandler "proxy:unix:/run/php/php8.2-fpm.sock"
# SetHandler "proxy:fcgi://localhost"
    </FilesMatch>

```

Je devrais voir le code, déjà.

Si je vire mon «&nbsp;MY TEST FOR PHP SOURCE&nbsp;» avec la configuration «&nbsp;ww2&nbsp;» par default je vois bien mon code (SEULEMENT dans Chrome) sur «&nbsp;ww2&nbsp;» et «&nbsp;ww1&nbsp;» :

```auto
    <FilesMatch ".+\.phps$">
        # Deny access to raw php sources by default
        # To re-enable it's recommended to enable access to the files
        # only in specific virtual host or directory
        Require all denied
    </FilesMatch>

```

🤨

Dans Firefox le PHPSource sur «&nbsp;ww1&nbsp;» et «&nbsp;ww2&nbsp;» 😕

[![image](https://www.debian-fr.org/uploads/default/original/2X/3/332dec58d0fb1caaabaca43dd6bec15657393f2b.png)](https://www.zw3b.fr/pub/screens/others/Capture%20d'%c3%a9cran%202025-01-24%20134056.%20-%20ZWB3.blog%20-%20Clocks.phps.png)

* * *

Pour extrapoler ; le `|fcgi://localhost` c’est pour qui ?? le «&nbsp;RemoteCLient&nbsp;» dans «&nbsp;Chrome&nbsp;» ! CF entouré en route plus haut sur les images.

🥳

* * *

## /!\

```auto
    <FilesMatch ".+\.ph(?:ar|p|tml)$">
# SetHandler "proxy:unix:/run/php/php8.2-fpm.sock|fcgi://localhost"
       SetHandler "proxy:unix:/run/php/php8.2-fpm.sock"
    </FilesMatch>

```

Style le «&nbsp;index.php&nbsp;»:

- Dans «&nbsp;Firefox&nbsp;» çà affiche → tout le code PHP (les sites web) comme la dernière image du dessus, du style «&nbsp;complétement dégueulasse, ce n’est pas «&nbsp;exactement&nbsp;» le code textuel PHP&nbsp;».
- Dans «&nbsp;Chrome&nbsp;» çà affiche → tout le code SOURCE des PHP carrément.

Comme si c’était l’extension PHP Source «&nbsp;.phps&nbsp;» -

**Sarteck le proxy PHP-FPM il lit le fichier … texte PHP 😉 Mais que dans Chrome ; au fait.**

Vraiment, y’a des «&nbsp;choses&nbsp;» que je ne comprends pas.

* * *

Je vais attaquer l’autre module, le «&nbsp;fcgi&nbsp;» ; pour analyse.

Donc, déjà, j’ai pas la «&nbsp;même configuration&nbsp;» entre mes 2 «&nbsp;backends&nbsp;» «&nbsp;ww1&nbsp;» et «&nbsp;ww2&nbsp;» (on va dire ce n’est pas grave, çà tombe bien) :

> **WW1 files Apache sur Debian GNU/Linux 10 (buster)**
>
> ```auto
> root@lb1.ww1:~ # ls -l /etc/apache2/mods-enabled/
> [...]
> lrwxrwxrwx 1 root root 26 juil. 19 2020 cgi.load -> ../mods-available/cgi.load
> [...]
> lrwxrwxrwx 1 root root 28 avril 26 2020 http2.conf -> ../mods-available/http2.conf
> lrwxrwxrwx 1 root root 28 avril 26 2020 http2.load -> ../mods-available/http2.load
> [...]
> lrwxrwxrwx 1 root root 32 janv. 22 07:52 mpm_event.conf -> ../mods-available/mpm_event.conf
> lrwxrwxrwx 1 root root 32 janv. 22 07:52 mpm_event.load -> ../mods-available/mpm_event.load
> [...]
> lrwxrwxrwx 1 root root 28 avril 26 2020 proxy.conf -> ../mods-available/proxy.conf
> lrwxrwxrwx 1 root root 33 janv. 22 07:50 proxy_fcgi.load -> ../mods-available/proxy_fcgi.load
> lrwxrwxrwx 1 root root 28 avril 26 2020 proxy.load -> ../mods-available/proxy.load
> [...]
> lrwxrwxrwx 1 root root 31 avril 15 2020 setenvif.conf -> ../mods-available/setenvif.conf
> lrwxrwxrwx 1 root root 31 avril 15 2020 setenvif.load -> ../mods-available/setenvif.load
> [...]
> 
> ```
> 
> ```auto
> root@lb1.ww1:~ # cat /etc/apache2/mods-enabled/http2.conf
> # mod_http2 doesn't work with mpm_prefork
> <IfModule !mpm_prefork>
> Protocols h2 h2c http/1.1
> 
> # # HTTP/2 push configuration
> #
> # H2Push on
> #
> # # Default Priority Rule
> #
> # H2PushPriority * After 16
> #
> # # More complex ruleset:
> #
> # H2PushPriority * after
> # H2PushPriority text/css before
> # H2PushPriority image/jpeg after 32
> # H2PushPriority image/png after 32
> # H2PushPriority application/javascript interleaved
> #
> # # Configure some stylesheet and script to be pushed by the webserver
> #
> # <FilesMatch "\.html$">
> # Header add Link "</style.css>; rel=preload; as=style"
> # Header add Link "</script.js>; rel=preload; as=script"
> # </FilesMatch>
> # Since mod_http2 doesn't support the mod_logio module (which provide the %O format),
> # you may want to change your LogFormat directive as follow:
> #
> # LogFormat "%v:%p %h %l %u %t \"%r\" %>s %B \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
> # LogFormat "%h %l %u %t \"%r\" %>s %B \"%{Referer}i\" \"%{User-Agent}i\"" combined
> # LogFormat "%h %l %u %t \"%r\" %>s %B" common
> </IfModule>
> 
> ```
> 
> ```auto
> root@lb1.ww1:~ # cat /etc/apache2/mods-enabled/proxy_fcgi.load
> # Depends: proxy
> LoadModule proxy_fcgi_module /usr/lib/apache2/modules/mod_proxy_fcgi.so
> 
> ```
> 
> ```auto
> root@lb1.ww1:~ # cat /etc/apache2/conf-enabled/serve-cgi-bin.conf
> <IfModule mod_alias.c>
> <IfModule mod_cgi.c>
> Define ENABLE_USR_LIB_CGI_BIN
> </IfModule>
> 
> <IfModule mod_cgid.c>
> Define ENABLE_USR_LIB_CGI_BIN
> </IfModule>
> 
> <IfDefine ENABLE_USR_LIB_CGI_BIN>
> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
> <Directory "/usr/lib/cgi-bin">
> AllowOverride None
> Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
> Require all granted
> </Directory>
> </IfDefine>
> </IfModule>
> 
> ```
> 
> ```auto
> root@lb1.ww1:~ # cat /etc/apache2/mods-enabled/setenvif.conf
> <IfModule mod_setenvif.c>
> 
> #
> # The following directives modify normal HTTP response behavior to
> # handle known problems with browser implementations.
> #
> BrowserMatch "Mozilla/2" nokeepalive
> BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
> BrowserMatch "RealPlayer 4\.0" force-response-1.0
> BrowserMatch "Java/1\.0" force-response-1.0
> BrowserMatch "JDK/1\.0" force-response-1.0
> 
> #
> # The following directive disables redirects on non-GET requests for
> # a directory that does not include the trailing slash. This fixes a
> # problem with Microsoft WebFolders which does not appropriately handle
> # redirects for folders with DAV methods.
> # Same deal with Apple's DAV filesystem and Gnome VFS support for DAV.
> #
> BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
> BrowserMatch "MS FrontPage" redirect-carefully
> BrowserMatch "^WebDrive" redirect-carefully
> BrowserMatch "^WebDAVFS/1.[012]" redirect-carefully
> BrowserMatch "^gnome-vfs/1.0" redirect-carefully
> BrowserMatch "^gvfs/1" redirect-carefully
> BrowserMatch "^XML Spy" redirect-carefully
> BrowserMatch "^Dreamweaver-WebDAV-SCM1" redirect-carefully
> BrowserMatch " Konqueror/4" redirect-carefully
> 
> </IfModule>
> 
> ```

> **WW2 files Apache sur Debian GNU/Linux 12 (bookworm)**
>
> ```auto
> root@lb2.ww2:~ # ll /etc/apache2/mods-enabled/
> [...]
> lrwxrwxrwx 1 root root 26 Aug 30 2023 /etc/apache2/mods-enabled/cgi.load -> ../mods-available/cgi.load
> [...]
> lrwxrwxrwx 1 root root 28 Jan 24 09:13 fcgid.conf -> ../mods-available/fcgid.conf
> lrwxrwxrwx 1 root root 28 Jan 24 09:13 fcgid.load -> ../mods-available/fcgid.load
> 
> lrwxrwxrwx 1 root root 28 Aug 30 2023 http2.conf -> ../mods-available/http2.conf
> lrwxrwxrwx 1 root root 28 Aug 30 2023 http2.load -> ../mods-available/http2.load
> 
> lrwxrwxrwx 1 root root 32 Jan 22 07:52 mpm_event.conf -> ../mods-available/mpm_event.conf
> lrwxrwxrwx 1 root root 32 Jan 22 07:52 mpm_event.load -> ../mods-available/mpm_event.load
> 
> lrwxrwxrwx 1 root root 28 Jan 22 07:51 proxy.conf -> ../mods-available/proxy.conf
> lrwxrwxrwx 1 root root 33 Jan 22 07:51 proxy_fcgi.load -> ../mods-available/proxy_fcgi.load
> lrwxrwxrwx 1 root root 28 Jan 22 07:51 proxy.load -> ../mods-available/proxy.load
> [...]
> lrwxrwxrwx 1 root root 31 Aug 30 2023 setenvif.conf -> ../mods-available/setenvif.conf
> lrwxrwxrwx 1 root root 31 Aug 30 2023 setenvif.load -> ../mods-available/setenvif.load
> [...]
> 
> ```
> 
> ```auto
> root@lb2.ww2:~ # cat /etc/apache2/mods-enabled/http2.conf
> Protocols h2 h2c http/1.1
> 
> # # HTTP/2 push configuration
> #
> # H2Push on
> #
> # # Default Priority Rule
> #
> # H2PushPriority * After 16
> #
> # # More complex ruleset:
> #
> # H2PushPriority * after
> # H2PushPriority text/css before
> # H2PushPriority image/jpeg after 32
> # H2PushPriority image/png after 32
> # H2PushPriority application/javascript interleaved
> #
> # # Configure some stylesheet and script to be pushed by the webserver
> #
> # <FilesMatch "\.html$">
> # Header add Link "</style.css>; rel=preload; as=style"
> # Header add Link "</script.js>; rel=preload; as=script"
> # </FilesMatch>
> # Since mod_http2 doesn't support the mod_logio module (which provide the %O format),
> # you may want to change your LogFormat directive as follow:
> #
> # LogFormat "%v:%p %h %l %u %t \"%r\" %>s %B \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
> # LogFormat "%h %l %u %t \"%r\" %>s %B \"%{Referer}i\" \"%{User-Agent}i\"" combined
> # LogFormat "%h %l %u %t \"%r\" %>s %B" common
> 
> ```
> 
> ```auto
> root@lb2.ww2:~ # cat /etc/apache2/mods-enabled/proxy_fcgi.load
> # Depends: proxy
> LoadModule proxy_fcgi_module /usr/lib/apache2/modules/mod_proxy_fcgi.so
> 
> ```
> 
> ```auto
> root@lb2.ww2:~ # cat /etc/apache2/mods-available/fcgid.conf
> <IfModule mod_fcgid.c>
> FcgidConnectTimeout 20
> 
> <IfModule mod_mime.c>
> AddHandler fcgid-script .fcgi
> </IfModule>
> </IfModule>
> 
> ```
> 
> ```auto
> root@lb2.ww2:~ # cat /etc/apache2/conf-enabled/serve-cgi-bin.conf
> <IfModule mod_alias.c>
> <IfModule mod_cgi.c>
> Define ENABLE_USR_LIB_CGI_BIN
> </IfModule>
> 
> <IfModule mod_cgid.c>
> Define ENABLE_USR_LIB_CGI_BIN
> </IfModule>
> 
> <IfDefine ENABLE_USR_LIB_CGI_BIN>
> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
> <Directory "/usr/lib/cgi-bin">
> AllowOverride None
> Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
> Require all granted
> </Directory>
> </IfDefine>
> </IfModule>
> 
> ```
> 
> ```auto
> root@lb2.ww2:~ # cat /etc/apache2/mods-enabled/setenvif.conf
> #
> # The following directives modify normal HTTP response behavior to
> # handle known problems with browser implementations.
> #
> BrowserMatch "Mozilla/2" nokeepalive
> BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
> BrowserMatch "RealPlayer 4\.0" force-response-1.0
> BrowserMatch "Java/1\.0" force-response-1.0
> BrowserMatch "JDK/1\.0" force-response-1.0
> 
> #
> # The following directive disables redirects on non-GET requests for
> # a directory that does not include the trailing slash. This fixes a
> # problem with Microsoft WebFolders which does not appropriately handle
> # redirects for folders with DAV methods.
> # Same deal with Apple's DAV filesystem and Gnome VFS support for DAV.
> #
> BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
> BrowserMatch "MS FrontPage" redirect-carefully
> BrowserMatch "^WebDrive" redirect-carefully
> BrowserMatch "^WebDAVFS/1\.[012]" redirect-carefully
> BrowserMatch "^gnome-vfs/1\.0" redirect-carefully
> BrowserMatch "^gvfs/1" redirect-carefully
> BrowserMatch "^XML Spy" redirect-carefully
> BrowserMatch "^Dreamweaver-WebDAV-SCM1" redirect-carefully
> BrowserMatch " Konqueror/4" redirect-carefully
> 
> ```

Donc, «&nbsp;WW1&nbsp;» fonctionne sans :

```auto
lrwxrwxrwx 1 root root 28 Jan 24 09:13 fcgid.conf -> ../mods-available/fcgid.conf
lrwxrwxrwx 1 root root 28 Jan 24 09:13 fcgid.load -> ../mods-available/fcgid.load

```

Cà à l’air sympat, mais je ne comprend pas…

* * *

En passant, j’ai désactivé ce matin 8h00 les 3 frontaux que j’avais activité sur mon nom de domaine et avec «&nbsp;www&nbsp;» pour le «&nbsp;.fr&nbsp;» → [https://www.zw3b.fr](https://www.zw3b.fr) - parce que je n’en peut plus - rien qui fonctionne ; du coup le site fonctionne «&nbsp;normalement&nbsp;».

```auto
ven. janv. 24 14:32:11 root@home.lb1.ww1:~ # host zw3b.fr
zw3b.fr has address 158.69.126.137
zw3b.fr has IPv6 address 2607:5300:60:9389::1
zw3b.fr mail is handled by 10 smtp.zw3b.fr.

```

```auto
ven. janv. 24 14:58:03 root@home.lb1.ww1:~ # host zw3b.eu
zw3b.eu has address 158.69.126.137
zw3b.eu has address 90.5.102.244
zw3b.eu has address 57.128.171.43
zw3b.eu has address 135.125.133.51
zw3b.eu has IPv6 address 2607:5300:60:9389::1
zw3b.eu has IPv6 address 2001:41d0:701:1100::6530
zw3b.eu has IPv6 address 2001:41d0:801:2000::44f9
zw3b.eu has IPv6 address 2a01:cb1d:5:af00::1
zw3b.eu mail is handled by 10 smtp.zw3b.eu.

```

Du coup, je n’ai plus/pas d’erreur de «&nbsp;proxy&nbsp;» .. et en plus je ne voyais jamais arriver les requetes dans les logs ; sur les frontaux «&nbsp;quand j’avais un Proxy Error&nbsp;» que la page tournée en boucle dans l’onglet de mmon navigateur… avec les 4 frontaux..

🥵

Dans le style je suis grave

😡

J’ajoute [celle-ci](https://stackoverflow.com/questions/37082036/difference-between-fastcgiexternalserver-and-fastcgiserver-in-apache-fastcgi-php) parce que **External** ou pas Eternal ? mais la question est "External ou pas **mais vers où ?**

> [Difference between FastCgiExternalServer and FastCgiServer in Apache FastCGI PHP?](https://stackoverflow.com/questions/37082036/difference-between-fastcgiexternalserver-and-fastcgiserver-in-apache-fastcgi-php)
> 
> **FastCgiServer** est un serveur pour lequel mod\_fastcgi effectuera la gestion des processus, en faisant tourner les instances et en leur donnant un socket de domaine Unix sur lequel écouter. Aucune action extérieure n’est requise pour démarrer le serveur fastcgi.
> 
> **FastCgiExternalServer** est un serveur pour lequel mod\_fastcgi n’effectuera aucune gestion des processus, il se contentera d’atteindre le socket Unix ou TCP que vous lui indiquez d’utiliser et de lui transmettre les requêtes/réponses. Vous, ou un démon extérieur à httpd, devez démarrer quelque chose pour écouter sur le socket répertorié. La méthode la plus basique est l’utilitaire ‹&nbsp;fcgistarter&nbsp;›, les autres options sont des choses comme php-fpm.

Ce n’est pas exactement de la promo, c’est plutôt de l’anti-promo.. vous suivez rien !

C’est un métier tout çà : je vais donc attaquer çà → [mod\_proxy\_fcgi - Serveur HTTP Apache Version 2.4](https://httpd.apache.org/docs/2.4/fr/mod/mod_proxy_fcgi.html)

---

<div class="post-metadata">

**Author:** ![anon36725218](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/8e8cbc/32.png) [@anon36725218](https://www.debian-fr.org/u/anon36725218)\
**Post date:** [Janvier 26, 2025, 10:45 UTC](https://www.debian-fr.org/t/http-1-http-2-http-3/90838/8 "2025-01-26T10:45:27Z")

</div>

Salut,

J’ai désactivé mon «&nbsp;serveur AT home&nbsp;» (un des «&nbsp;frontal&nbsp;») pour mes sites web comme [ZW3B.FR](http://ZW3B.FR) , parce que la connexion Orange\_FR ne fonctionne pas eXactement comme celle d’un serveur en data-center et de ce fait, j’avais beaucoup d’erreurs de connexion au site «&nbsp;Proxy Error&nbsp;». Je vais refaire des tests, pour vérifier si c’est du côté «&nbsp;machine&nbsp;» ou du côté «&nbsp;réseau&nbsp;».

Je suis à plus de 60 kilomètres du «&nbsp;raccordement, du répartiteur&nbsp;» vers le «&nbsp;monde, l’Internet&nbsp;» tout en haut de la montagne, en passant par (pour dire), qu’un seul câble fibre, pour tous les villages entre Nice et chez moi Valdeblore Saint-dalmas 😉

[Localisation de mon adresse IPv4](https://search.dnslytics.com/ip/90.5.102.244) jsuqu’à chez moi :  
[![Capture d'écran 2025-01-26 112758 - Nice - Valdeblore](https://www.debian-fr.org/uploads/default/original/2X/5/545964b448181b722d8c47bc40b15d5afbc780da.jpeg)](https://www.zw3b.fr/pub/screens/others/Capture%20d'%c3%a9cran%202025-01-26%20112758%20-%20Nice%20-%20Valdeblore.png)  
«&nbsp;J’envie&nbsp;» les personnes citadines (avec des NRO (Nœud de Raccordement Optique) à 50 mètres de chez eux).

😉

Sinon pour ajouter, je trouve que HTTP/2 est plus rapide que le protocole HTTP/1.X, les sites fonctionnent bien mieux, depuis que j’ai mis en place ce protocole de communication Web.

Bon dimanche à tous.

Romain.

---

<div class="post-metadata">

**Author:** ![Zargos](https://www.debian-fr.org/user_avatar/www.debian-fr.org/zargos/32/10889_2.png) [@Zargos](https://www.debian-fr.org/u/Zargos)\
**Post date:** [Janvier 26, 2025, 11:33 UTC](https://www.debian-fr.org/t/http-1-http-2-http-3/90838/9 "2025-01-26T11:33:31Z")

</div>

Pour avoir traité des interconnexions entre datacenter, et continuant d’en assurer la gouvernance pour mes clients:  
Normalement une fibre optique n’a pas vraiment d’impact en fonction de la distance à moins de dépasser les 200 ou 300 km et encore, c’est juste la latence qui est impactée.  
De plus, un seul câble de fibre optique ne signifie pas une seule ligne de fibre optique.  
Cet impact sur la latence n’est d’ailleurs pas due à la fibre mais aux équipements de raccordements intermédiaires et aux extrémités.  
Et au regard de la latence, on parles de 2 à 10ms sur une ligne jusqu’à 300 km. Il ne devrait donc pas y avoir d’impact sur une connexion HTTP.  
Le problème vient probablement d’une mauvaise qualité d’installation.

---

<div class="post-metadata">

**Author:** ![anon36725218](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/8e8cbc/32.png) [@anon36725218](https://www.debian-fr.org/u/anon36725218)\
**Post date:** [Janvier 26, 2025, 1:37 UTC](https://www.debian-fr.org/t/http-1-http-2-http-3/90838/10 "2025-01-26T13:37:58Z")

</div>

Salut @Zargos,

> [@Zargos](#):
>
> Le problème vient probablement d’une mauvaise qualité d’installation.

Non j’étais là (on a passés «&nbsp;du poteau&nbsp;» à travers le regard à «&nbsp;mon salon&nbsp;» en passant par ma cave (en un, un seul fil sur 90 mètres).

> [@Zargos](#):
>
> Pour avoir traité des interconnexions entre datacenter, et continuant d’en assurer la gouvernance pour mes clients:  
> Normalement une fibre optique n’a pas vraiment d’impact en fonction de la distance à moins de dépasser les 200 ou 300 km et encore, c’est juste la latence qui est impactée.

oui ok, je sais.

> [@Zargos](#):
>
> De plus, un seul câble de fibre optique ne signifie pas une seule ligne de fibre optique.

oui justement… on est tout les villages, sur un seul fil, pour «&nbsp;dire en gros&nbsp;», j’espère, qu’il n’y a pas qu’un seul fil 😉

> [@Zargos](#):
>
> Et au regard de la latence, on parles de 2 à 10ms sur une ligne jusqu’à 300 km. Il ne devrait donc pas y avoir d’impact sur une connexion HTTP.

Je pensais plutôt, de mini-pertes «&nbsp;de paquets&nbsp;», peut-être comme vous le remonter «&nbsp;_due aux équipements de raccordements intermédiaires…_&nbsp;»

Bonne journée.

Z’ont dû faire des NRO (Nœuds de Raccordement Optique) bizarre chez Orange\_FR…

 ![Capture d'écran 2025-01-26 150033](https://www.debian-fr.org/uploads/default/original/2X/0/0da1b67e742deaf643b64cfb41a252d93ab811a6.png)

---

<div class="post-metadata">

**Author:** ![anon36725218](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/8e8cbc/32.png) [@anon36725218](https://www.debian-fr.org/u/anon36725218)\
**Post date:** [Février 1, 2025, 2:56 UTC](https://www.debian-fr.org/t/http-1-http-2-http-3/90838/11 "2025-02-01T14:56:54Z")

</div>

Salut, bon weekend 😃

[![Capture d'écran 2025-02-01 155119 - Requete HTTP3](https://www.debian-fr.org/uploads/default/original/2X/e/eed6df1239a15dae9b3980779d132405d5803306.jpeg)](https://www.zw3b.fr/pub/screens/others/Capture%20d'%c3%a9cran%202025-02-01%20155119%20-%20Requete%20HTTP3.png)  
Capture d’écran 2025-02-01 155119 - Requete HTTP/3

Çà bosse chez Google 😉

@+

---

<div class="post-metadata">

**Author:** ![anon36725218](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/8e8cbc/32.png) [@anon36725218](https://www.debian-fr.org/u/anon36725218)\
**Post date:** [Février 3, 2025, 2:51 UTC](https://www.debian-fr.org/t/http-1-http-2-http-3/90838/12 "2025-02-03T14:51:30Z")

</div>

Salut,

Sinon, j’en suis toujours au même point et pire !

> «&nbsp; **php-fpm and file html** &nbsp;»
> 
> 1. Creating an HTML File with Embedded PHP  
> Create a PHP File: Navigate to your web root directory, usually /var/www/html, and create a file named index.php.
> 
> ```auto
> <?php
> echo "<!DOCTYPE html>
> <html>
> <head>
> <title>PHP-FPM Test</title>
> </head>
> <body>
> <h1>Hello, World!</h1>
> <p>Current date and time is: " . date('Y-m-d H:i:s') . "</p>
> </body>
> </html>";
> ?>
> 
> ```
> 
> 1. Access Your File: Open your web browser and navigate to http://your\_domain.com/index.php. You should see your HTML content rendered with the current date and time displayed.

Qu’est-ce que c’est que ce «&nbsp;truc&nbsp;» débile ! Mon serveur Web fait télécharger les fichiers «&nbsp;.html&nbsp;» aux internautes.

Je, on va tous modifier «&nbsp;10 milles fichiers&nbsp;» HTML bien sûr, voir 100 000 !

Personne a une solution ?

---

<div class="post-metadata">

**Author:** ![anon36725218](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/8e8cbc/32.png) [@anon36725218](https://www.debian-fr.org/u/anon36725218)\
**Post date:** [Février 3, 2025, 9:57 UTC](https://www.debian-fr.org/t/http-1-http-2-http-3/90838/13 "2025-02-03T21:57:50Z")

</div>

Au revoir **HTTP/2** 😪 et **PHP-FPM** 🥴 (_FastCGI Process Manager_).

```auto
a2disconf php8.2-fpm ; a2dismod mpm_event mpm_worker proxy proxy_fcgi fcgid ; a2enmod php8.2 mpm_prefork

```

Je vais testé `HTTP/3` 😛 sur mon serveur AT Home…

> **[QUIC | Cloudflare](https://cloudflare-quic.com/)**
>
> Cloudflare Supports QUIC

> **[NGINX HTTP/3—Configurations, Troubleshooting, and Best Practices](https://www.catchpoint.com/http2-vs-http3/nginx-http3)**
>
> Learn basic and advanced NGINX HTTP/3 configurations, debugging tips, how to integrate with your firewalls, performance optimization, and other best practices.

😉

---

<div class="post-metadata">

**Author:** ![anon36725218](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/8e8cbc/32.png) [@anon36725218](https://www.debian-fr.org/u/anon36725218)\
**Post date:** [Février 8, 2025, 1:23 UTC](https://www.debian-fr.org/t/http-1-http-2-http-3/90838/14 "2025-02-08T01:23:48Z")

</div>

Bon déjà, bonne nouvelle, je suis repassé en **HTTP/2**!

Et, j’ai trouvé une astuce (un vrai galère, doit y avoir un moyen de lire les HTML (et ne pas les faire terlécharger à l’internaute)) :

```auto
ln -s index.html index.php

```

En fait les fichiers **`.php`** (sans balise `<?php` d’ouverture et fermeture `?>`) sont des **HTML**.

[![Capture d'écran 2025-02-08 022209](https://www.debian-fr.org/uploads/default/original/2X/4/4866a5ae8b92bec06a4faeb3f678889661d01f77.png)](https://zw3b.tv/)

Pour bien rafraichir les pages de @ZW3B («&nbsp; **`ipconfig /flushdns`** &nbsp;» et des..)

Ctrl + F5, Ctrl + F5, Ctrl + F5, Ctrl + F5

😉

* * *

J’ajoute çà ici !

Sinon, y’a un «&nbsp;quelque chose de particulier&nbsp;» ; je m’affole, mais c’est peut être normal et bien mieux, Orange aurait des liens direct …

Je comprend mal.

CF les `traceroute` IPv6, je trouve pas cela normal.

```auto
root@gate:~ # traceroute6 howto.zw3b.fr
traceroute to howto.zw3b.fr (2607:5300:60:9389::1), 30 hops max, 80 byte packets
 1 2a01:cb1d:5:af00:c2d7:aaff:fec0:f839 (2a01:cb1d:5:af00:c2d7:aaff:fec0:f839) 0.726 ms 0.842 ms 1.083 ms
 2 2a01cb08a00402110193025300750130.ipv6.abo.wanadoo.fr (2a01:cb08:a004:211:193:253:75:130) 11.982 ms 12.442 ms 12.836 ms
 3 * * *
 4 * * 2a01:cfc4:0:2000::9 (2a01:cfc4:0:2000::9) 13.081 ms
 5 srv.ca.lab3w.com (2607:5300:60:9389::1) 109.890 ms 107.080 ms 110.363 ms

```

```auto
root@gate:~ # traceroute6 howto.zw3b.fr
traceroute to howto.zw3b.fr (2001:41d0:801:2000::44f9), 30 hops max, 80 byte packets
 1 2a01:cb1d:5:af00:c2d7:aaff:fec0:f839 (2a01:cb1d:5:af00:c2d7:aaff:fec0:f839) 0.732 ms 0.974 ms 1.488 ms
 2 2a01cb08a00402110193025300750130.ipv6.abo.wanadoo.fr (2a01:cb08:a004:211:193:253:75:130) 72.989 ms 73.531 ms 74.049 ms
 3 * * *
 4 * * *
 5 vps.uk.ipv10.net (2001:41d0:801:2000::44f9) 74.327 ms 74.834 ms 92.181 ms

```

```auto
root@gate:~ # traceroute6 howto.zw3b.fr
traceroute to howto.zw3b.fr (2001:41d0:701:1100::6530), 30 hops max, 80 byte packets
 1 2a01:cb1d:5:af00:c2d7:aaff:fec0:f839 (2a01:cb1d:5:af00:c2d7:aaff:fec0:f839) 0.713 ms 35.301 ms 1.177 ms
 2 2a01cb08a00402110193025300750130.ipv6.abo.wanadoo.fr (2a01:cb08:a004:211:193:253:75:130) 13.372 ms 13.762 ms 14.268 ms
 3 * * *
 4 2a01:cfc4:0:2000::9 (2a01:cfc4:0:2000::9) 14.639 ms * *
 5 vps.de.ipv10.net (2001:41d0:701:1100::6530) 30.169 ms 30.747 ms 32.107 ms

```

On dirait que Orange à accrocher mes 3 fronteaux (CA|UK|DE) depuis leur machine la «&nbsp;2a01:cfc4:0:2000::9&nbsp;».

**Et, le plus horrible** , du coup mes ‹&nbsp;sites&nbsp;› ne sont plus accessible, **çà bug complet depuis 5 jours !!!** Certes, j’ai fais des modifications en 15 jours de HTTP/1 à HTTP/2 et re HTTP/1 pour HTTP/2 maintenant.

C’est quoi çà aussi ???

```auto
root@gate:~ # traceroute6 www.google.com
traceroute to www.google.com (2a00:1450:400a:801::2004), 30 hops max, 80 byte packets
 1 2a01:cb1d:5:af00:c2d7:aaff:fec0:f839 (2a01:cb1d:5:af00:c2d7:aaff:fec0:f839) 0.748 ms 137.274 ms 1.080 ms
 2 2a01cb08a00402110193025300750130.ipv6.abo.wanadoo.fr (2a01:cb08:a004:211:193:253:75:130) 11.715 ms 12.198 ms 12.710 ms
 3 * * *
 4 2a01:cfc4:0:2000::9 (2a01:cfc4:0:2000::9) 13.013 ms * *
 5 zrh11s03-in-x04.1e100.net (2a00:1450:400a:801::2004) 27.661 ms 28.161 ms 28.949 ms

```

ou ?

```auto
root@gate:~ # traceroute6 www.wikipedia.org -I
traceroute to www.wikipedia.org (2a02:ec80:300:ed1a::1), 30 hops max, 80 byte packets
 1 2a01:cb1d:5:af00:c2d7:aaff:fec0:f839 (2a01:cb1d:5:af00:c2d7:aaff:fec0:f839) 0.476 ms 0.872 ms *
 2 2a01cb08a00402110193025300750130.ipv6.abo.wanadoo.fr (2a01:cb08:a004:211:193:253:75:130) 10.281 ms 10.796 ms *
 3 * * *
 4 2a01:cfc4:0:2000::3 (2a01:cfc4:0:2000::3) 23.531 ms * *
 5 text-lb.esams.wikimedia.org (2a02:ec80:300:ed1a::1) 38.410 ms 39.434 ms 39.939 ms

```

Une requete normale :

```auto
root@gate:~ # traceroute6 www.internet.nl -I
traceroute to www.internet.nl (2a00:d00:ff:162:62:204:66:10), 30 hops max, 80 byte packets
 1 2a01:cb1d:5:af00:c2d7:aaff:fec0:f839 (2a01:cb1d:5:af00:c2d7:aaff:fec0:f839) 0.480 ms 0.789 ms *
 2 2a01cb08a00402110193025300750130.ipv6.abo.wanadoo.fr (2a01:cb08:a004:211:193:253:75:130) 9.347 ms * *
 3 * * *
 4 * * *
 5 2a01:cfc4:0:2100::3 (2a01:cfc4:0:2100::3) 20.760 ms 21.173 ms 21.950 ms
 6 ae-26.a01.parsfr05.fr.bb.gin.ntt.net (2001:728:0:4000::49) 22.538 ms 15.337 ms 15.837 ms
 7 ae-10.r22.parsfr04.fr.bb.gin.ntt.net (2001:728:0:2000::39) 16.846 ms 15.505 ms 16.687 ms
 8 ae-1.r23.amstnl07.nl.bb.gin.ntt.net (2001:728:0:2000::1e9) 25.969 ms 26.438 ms 28.134 ms
 9 ae-19.a00.amstnl07.nl.bb.gin.ntt.net (2001:728:0:2000::e) 32.570 ms 33.009 ms 33.404 ms
10 xe-1-5-1-0-4070.a00.amstnl07.nl.ce.gin.ntt.net (2001:728:0:5000::e5e) 29.345 ms 29.823 ms 24.662 ms
11 2a00:d00:1:12::2 (2a00:d00:1:12::2) 26.172 ms 31.931 ms 32.003 ms
12 internet.nl (2a00:d00:ff:162:62:204:66:10) 24.831 ms 27.728 ms 29.072 ms

```

```auto
root@gate:~ # whois 2a01:cfc4:0:2000::9
% This is the RIPE Database query service.
% The objects are in RPSL format.
%
% The RIPE Database is subject to Terms and Conditions.
% See https://docs.db.ripe.net/terms-conditions.html

% Note: this output has been filtered.
% To receive output for a database update, use the "-B" flag.

% Information related to '2a01:c000::/20'

% Abuse contact for '2a01:c000::/20' is 'gestionip.ft@orange.com'

inet6num: 2a01:c000::/20
netname: FR-TELECOM-20051230
country: FR
org: ORG-FT2-RIPE
admin-c: AB5579-RIPE
admin-c: ML2808-RIPE
admin-c: PG5119-RIPE
tech-c: BRX1-RIPE
status: ALLOCATED-BY-RIR
mnt-by: RIPE-NCC-HM-MNT
mnt-by: FT-BRX
mnt-routes: FT-BRX
created: 2024-07-22T11:04:09Z
last-modified: 2024-07-22T11:04:09Z
source: RIPE # Filtered

```

Qui peut me faire un traceroute ?

* * *

Dans l’autre sens – du Canada vers la France – le «&nbsp;traceroute6&nbsp;» est «&nbsp;normal&nbsp;».

```auto
root@lab3w:~ # traceroute6 2a01:cb1d:5:af00:1ab3:126:42:10
traceroute to 2a01:cb1d:5:af00:1ab3:126:42:10 (2a01:cb1d:5:af00:1ab3:126:42:10), 30 hops max, 80 byte packets
 1 ovh.ipv10.net (2607:5300:60:93ff:ff:ff:ff:fe) 0.576 ms ovh.ipv10.net (2607:5300:60:93ff:ff:ff:ff:fd) 0.609 ms 0.675 ms
 2 2001:41d0:0:50::2:162 (2001:41d0:0:50::2:162) 0.724 ms 2001:41d0:0:50::2:160 (2001:41d0:0:50::2:160) 0.821 ms 2001:41d0:0:50::2:15c (2001:41d0:0:50::2:15c) 0.917 ms
 3 2001:41d0:0:50::6:856 (2001:41d0:0:50::6:856) 0.105 ms 2001:41d0:0:50::6:84e (2001:41d0:0:50::6:84e) 0.196 ms 2001:41d0:0:50::6:95e (2001:41d0:0:50::6:95e) 0.123 ms
 4 * * *
 5 * * *
 6 be301.ymq-mtl3-pb2-8k.qc.ca (2001:41d0::2695) 4.117 ms * *
 7 * * *
 8 motl-b2-v6.ip.twelve99.net (2001:2034:0:14d::1) 1.438 ms 1.388 ms 2001:1900::3:327 (2001:1900::3:327) 8.326 ms
 9 nyk-bb5-v6.ip.twelve99.net (2001:2034:1:3::1) 8.568 ms * *
10 * 2a01:cb1d:5:af00:1ab3:126:42:10 (2a01:cb1d:5:af00:1ab3:126:42:10) 105.879 ms 106.574 ms

```

```auto
root@lab3w:~ # traceroute6 2a01:cb1d:5:af00:1ab3:126:42:10
traceroute to 2a01:cb1d:5:af00:1ab3:126:42:10 (2a01:cb1d:5:af00:1ab3:126:42:10), 30 hops max, 80 byte packets
 1 ovh.ipv10.net (2607:5300:60:93ff:ff:ff:ff:fd) 0.904 ms ovh.ipv10.net (2607:5300:60:93ff:ff:ff:ff:fe) 0.512 ms ovh.ipv10.net (2607:5300:60:93ff:ff:ff:ff:fd) 0.984 ms
 2 2001:41d0:0:50::2:162 (2001:41d0:0:50::2:162) 0.797 ms 2001:41d0:0:50::2:160 (2001:41d0:0:50::2:160) 0.752 ms 0.890 ms
 3 2001:41d0:0:50::6:84a (2001:41d0:0:50::6:84a) 0.140 ms 2001:41d0:0:50::6:958 (2001:41d0:0:50::6:958) 0.201 ms 2001:41d0:0:50::6:84c (2001:41d0:0:50::6:84c) 0.106 ms
 4 * * *
 5 * * *
 6 * * be301.ymq-mtl3-pb1-8k.qc.ca (2001:41d0::2693) 2.901 ms
 7 * * *
 8 motl-b2-v6.ip.twelve99.net (2001:2034:0:14d::1) 1.515 ms * 2001:1900::3:327 (2001:1900::3:327) 8.345 ms
 9 * * 2001:688:0:4::1f1 (2001:688:0:4::1f1) 83.743 ms
10 * * *
11 * port-channel8073.ccr91.dca04.atlas.cogentco.com (2001:550:0:1000::9a36:aa45) 13.605 ms port-channel4188.ccr92.dca04.atlas.cogentco.com (2001:550:0:1000::9a36:1e79) 13.747 ms
12 * * *
13 * * *
14 * * 2001:550:3::206 (2001:550:3::206) 92.764 ms
15 * * *
16 * * 2a01:cfc4:0:2100::2 (2a01:cfc4:0:2100::2) 99.389 ms
17 * * *
18 * * 2a01cb08a00402110193025300770134.ipv6.abo.wanadoo.fr (2a01:cb08:a004:211:193:253:77:134) 102.951 ms
19 * * *
20 * * *
21 * * *
22 * 2a01:cb1d:5:af00:1ab3:126:42:10 (2a01:cb1d:5:af00:1ab3:126:42:10) 100.340 ms 97.925 ms

```

---

<div class="post-metadata">

**Author:** ![Zargos](https://www.debian-fr.org/user_avatar/www.debian-fr.org/zargos/32/10889_2.png) [@Zargos](https://www.debian-fr.org/u/Zargos)\
**Post date:** [Février 8, 2025, 10:48 UTC](https://www.debian-fr.org/t/http-1-http-2-http-3/90838/15 "2025-02-08T10:48:28Z")

</div>

> [@anon36725218](#):
>
> Et, j’ai trouvé une astuce (un vrai galère, doit y avoir un moyen de lire les HTML (et ne pas les faire terlécharger à l’internaute)) :
> 
> ```auto
> ln -s index.html index.php
> 
> ```
> 
> En fait les fichiers **`.php`** (sans balise `<?php` d’ouverture et fermeture `?>` ) sont des **HTML**.

C’est crade, et techniquement pas fiable. C’est l’équivalent de faire tenir son pot d’échappement avec du chewing gum

---

<div class="post-metadata">

**Author:** ![anon36725218](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/8e8cbc/32.png) [@anon36725218](https://www.debian-fr.org/u/anon36725218)\
**Post date:** [Février 8, 2025, 4:57 UTC](https://www.debian-fr.org/t/http-1-http-2-http-3/90838/16 "2025-02-08T16:57:00Z")

</div>

@Zargos, j’ai «&nbsp;niké – bon c’est faux&nbsp;» tout mon serveur avec ces changement de protocoles de communication !!

Je reboot toute la machine dans quelques secondes → 537 jours d’uptime…  
Je sent que les sites @ZW3B @LAB3W.ORJ ne vont plus répondre… (tiens, [j’ai une question substantielle](https://www.debian-fr.org/t/server-dns-bind9-master-2-master/90905)).

 ![Capture d'écran 2025-02-08 161005 SRV.CA.LAB3W - UPTIME 537 days - reboot](https://www.debian-fr.org/uploads/default/original/2X/7/74701f6b69016d9c30c0aea850e0b7885cc3388f.png)

Les «&nbsp;backends&nbsp;» locaux à cette machine n’envoient plus rien aux «&nbsp;frontends&nbsp;» ; toutes les datas sont récupérées via StrongSwanv6 PQ dans mon serveur «&nbsp;backend&nbsp;» AT home en France…

C’est complet, la galère…

---

<div class="post-metadata">

**Author:** ![Zargos](https://www.debian-fr.org/user_avatar/www.debian-fr.org/zargos/32/10889_2.png) [@Zargos](https://www.debian-fr.org/u/Zargos)\
**Post date:** [Février 9, 2025, 9:18 UTC](https://www.debian-fr.org/t/http-1-http-2-http-3/90838/17 "2025-02-09T09:18:47Z")

</div>

C’est souvent ce qui arrive avec les usines à gaz 🙂

---

<div class="post-metadata">

**Author:** ![anon36725218](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/8e8cbc/32.png) [@anon36725218](https://www.debian-fr.org/u/anon36725218)\
**Post date:** [Février 10, 2025, 2:43 UTC](https://www.debian-fr.org/t/http-1-http-2-http-3/90838/18 "2025-02-10T14:43:15Z")

</div>

Bon, j’ai reboot toute la machine et par malheur ;

çà fait la même chose, les VM QEMU ne chargent plus la mémoire vive comme dans le temps (y’a 500 jours..),

je demande 16 GIG / VM… et 16 GIG pour l’hôte sur un total de 64G pour toute la machine.

J’ai essayé le «&nbsp;ballooning de la RAM&nbsp;» (mini 12G sur 16G / VM) mais çà ne fonctionne pas mieux, çà ne charge pas les 12 comme expliqué.

C’était très bien avant, çà fonctionne à la perfection. Je ne sais pas ce qu’ils m’ont fait ; mais c’est la galère.

Et, en lançant une VM, j’ai au total, 4GIG de DDR ECC utilisée.. et mes pages s’affichent en 120 secondes… au lieu de 3 secondes…

J’ai un vieux Proxmox VE 6.4.15 :  
[https://ww1.zw3b.fr/about/](https://ww1.zw3b.fr/about/) → «&nbsp;`SRV.CA`&nbsp;» sur la VM QEMU «&nbsp;`LB1`&nbsp;» container LXC «&nbsp;`WW1`&nbsp;» 1,42 GIG/16  
[https://ww2.zw3b.fr/about/](https://ww2.zw3b.fr/about/) → «&nbsp;`SRV.CA`&nbsp;» sur la VM QEMU «&nbsp;`LB2`&nbsp;» container LXC «&nbsp;`WW2`&nbsp;» 1,04 GIG/16

J’ai un Proxmox VE 8.3.3 :  
[https://ww3.zw3b.fr/about/](https://ww3.zw3b.fr/about/) → «&nbsp;`SRV.FR`&nbsp;» sur la VM QEMU «&nbsp;`LB1`&nbsp;» container LXC «&nbsp;`WW1`&nbsp;» 1,05 GIG/16 - mais, j’avoue il y que apache2 PHP-PFM pour les [youXor.com](http://youXor.com) &compagnies et les «&nbsp;ww3&nbsp;» et un MySQL dans son «&nbsp;LinuXContainer&nbsp;».

Et pourtant le «&nbsp;.com&nbsp;» fonctionne bien (ou pas).. ([www](https://www.zw3b.com/about/), [1](https://ww1.zw3b.com/about/), [2](https://ww2.zw3b.com/about/), [3](https://ww3.zw3b.com/about/)) ; et le «&nbsp;.tv&nbsp;» aussi.

Et sur le frontal (du coup j’ai activé que le frontal du Canada) pour [https://www.zw3b.fr/about/](https://www.zw3b.fr/about/) - de chez moi çà me retourne «&nbsp;Service Unavailable&nbsp;» - je vais craquer !

* * *

_Note de Moi-même : Si, toi garçon ou fille de «&nbsp;[LaFibre.info](https://LaFibre.info)&nbsp;» vous allez réussir à me faire «&nbsp;ré-installer&nbsp;» la dernière version de Proxmox VE._

😅

Grosse mission, entre les «&nbsp;backends&nbsp;» et le serveur de mail…

> [@Zargos](#):
>
> C’est souvent ce qui arrive avec les usines à gaz 🙂

C’est pas une usine à gaz – c’est un site, un «&nbsp;[engine](https://admin.lab3w.com)&nbsp;» de plusieurs sites web !

* * *

**C’est comme çà ??? çà sort d’où ? IL n’y a pas de «&nbsp;Gateway&nbsp;» ; elle vient d’où cette erreur !!!**

![Capture d'écran 2025-02-10 162435](https://www.debian-fr.org/uploads/default/original/2X/d/d716e3fd7d0fde89714009ffc226d9f44f0f57df.png)

```auto
root@lab3w:~ # host ww2.zw3b.fr
ww2.zw3b.fr has IPv6 address 2607:5300:60:9389:15:2:a:10

```

.

PS : «&nbsp;Ils (je n’sais pas trop qui)&nbsp;» nous ont laissé [ZW3B.TV](http://ZW3B.TV) c’est déjà çà et la Hompage [ZW3B.FR](http://ZW3B.FR) !

* * *

Bon je vais aller me pinter au bar pour parler français et mettre tous les dossiers sur la table !!

Sinon comme avant, quand @ZW3B fonctionnaient j’aurais dit : «&nbsp;Au Café Citoyen&nbsp;» qu’l’on se fasse une Task Force !!

* * *

Note de Moi-même le 11/02/2025 à 15h GMT+1 :

Pour en revenir au même point ; même les graphs MRTG (les fichiers HTML) sont téléchargés.. C’est une horreur ce PHP-FPM.

[**@CA.LAB3W.SRV** - MRTG Index Page](https://www.zw3b.fr/pub/mrtg-router/) et les AWStats !

Il faut faire quelque chose. Ce n’est pas possible comme çà.

* * *

Note de Moi-même le 11/02/2025 à 17h15 GMT+1 :

[https://www.zw3b.fr](https://www.zw3b.fr) - [https://howto.zw3b.fr](https://howto.zw3b.fr) et les autres en «&nbsp;.FR&nbsp;» AT Home…

Est-ce cela fonctionne et rapidement pour vous ? Moi, j’suis en local.

Pour info : Orange\_FR Fibre (FTTH) jusqu’à 2 Gbit/s - LiveBox 5 Sagemcom.

Merci.

---

<div class="post-metadata">

**Author:** ![AnonymousCoward](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/f9ae1b/32.png) [@AnonymousCoward](https://www.debian-fr.org/u/AnonymousCoward)\
**Post date:** [Février 11, 2025, 4:53 UTC](https://www.debian-fr.org/t/http-1-http-2-http-3/90838/19 "2025-02-11T16:53:10Z")

</div>

Tu peux voir les entêtes échangés lors d’une requête web avec une ligne de commande telle que :

```bash
curl -s -v -o /dev/null 'https://www.zw3b.fr/' 2>&1 | grep '^[<>] '

```

Si le serveur ne renvoie pas d’entête `content-type` valant `text/html` comme ci-dessous, il est logique que ton navigateur web propose d’enregistrer le résultat de la requête dans un fichier plutôt que de l’afficher.

```auto
content-type: text/html; charset=UTF-8

```

–  
AnonymousCoward

---

<div class="post-metadata">

**Author:** ![AnonymousCoward](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/f9ae1b/32.png) [@AnonymousCoward](https://www.debian-fr.org/u/AnonymousCoward)\
**Post date:** [Février 11, 2025, 4:59 UTC](https://www.debian-fr.org/t/http-1-http-2-http-3/90838/20 "2025-02-11T16:59:24Z")

</div>

Si le principal problème est qu’un serveur web Apache2 renvoie le code PHP tel quel au lieu de l’exécuter, il faut que tu vérifies :

Le fichier `/etc/apache2/conf-available/php8.2-fpm.conf` . Ne pas hésiter à réinstaller le package pour retrouver celui d’origine.

Si le service `php8.2-fpm.service` est actif.

–  
AnonymousCoward

---

<div class="post-metadata">

**Author:** ![anon36725218](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/8e8cbc/32.png) [@anon36725218](https://www.debian-fr.org/u/anon36725218)\
**Post date:** [Février 11, 2025, 6:01 UTC](https://www.debian-fr.org/t/http-1-http-2-http-3/90838/21 "2025-02-11T18:01:58Z")

</div>

Ok merci @AnonymousCoward pour les En-têtes Content-type ^^ ce n’est pas bête je vérifierais..

C’est vrai que depuis que j’ai installé «&nbsp;php-fpm&nbsp;» mes pages «&nbsp;html&nbsp;» d’un dump du premier mail de chaque «&nbsp;mailing&nbsp;» ne me sortait pas l’UTF-8 (je n’avais pas entouré mon code des balises `<html><head><meta type=="" /></head><body>[...]</body></html>`.. Je créais simplement, le corps (en pensant que dans le «&nbsp;webmail client&nbsp;», il y avait déjà la balise d’ouverture et fermeture «&nbsp;html&nbsp;». Et, donc, le dump «&nbsp;HTML&nbsp;» sur le lien de newsletters disant «&nbsp;Cliquez ici pour voir la version HTML&nbsp;» se retrouve «&nbsp;non UTF-8&nbsp;» - Et pourtant le Charset du serveur Apache est bien configuré.

Pour celles et ceux qui arrivent à suivre.

> Note de Moi-même : 12/02/2025 à 15h :  
> Je me contredis, j’ai l’impression ; Je pensais à çà cette nuit :  
> → sur les pages HTML de la «&nbsp;mailing&nbsp;», j’avais des problèmes d’accents (l’UTF-8 de la config du serveur n’est pas prise en compte), j’ai dû ajouté seulement le «&nbsp;méta-tags content-type UFT-8&nbsp;» au fichier html pour que les accents s’affiche normalement ;  
> → Et, sur certaines autres pages «&nbsp;HTML&nbsp;» ; elles sont carrément téléchargées par le navigateur à l’ouverture d’une URL.
> 
> PHP-FPM lit les pages HTML ou bien ; donc comme me signale @AnonymousCoward c’est sûrement un problème de déclaration du bon Content-type..

@+

* * *

J’ai «&nbsp;balancé&nbsp;» (c’est le cas de l’dire) tous les sites @ZW3B sur mon I9-9900k à la maison – par contre çà RAME complétement, je trouve.

Donnez moi votre géoloc 😅 Ok ; on est pas sur [LaFibre.info](https://LaFibre.info), France, Orange\_FR ou autres ?

P’tite config DNS 😉

```auto
root@fr.srv.lab3w.com:~ # host zw3b.fr
zw3b.fr has address 90.5.102.244
zw3b.fr has IPv6 address 2a01:cb1d:5:af00:1ab3::1
zw3b.fr mail is handled by 10 smtp.zw3b.fr.

root@fr.srv.lab3w.com:~ # host www.zw3b.fr
www.zw3b.fr has address 90.5.102.244
www.zw3b.fr has IPv6 address 2a01:cb1d:5:af00:1ab3::1

root@fr.srv.lab3w.com:~ # host wwwwwwwwwwww.zw3b.fr
wwwwwwwwwwww.zw3b.fr is an alias for web.zw3b.fr.
web.zw3b.fr has address 135.125.133.51
web.zw3b.fr has address 158.69.126.137
web.zw3b.fr has address 57.128.171.43
web.zw3b.fr has address 90.5.102.244
web.zw3b.fr has IPv6 address 2a01:cb1d:5:af00:1ab3::1
web.zw3b.fr has IPv6 address 2607:5300:60:9389::1
web.zw3b.fr has IPv6 address 2001:41d0:701:1100::6530
web.zw3b.fr has IPv6 address 2001:41d0:801:2000::44f9

```

Je n’ai pas réinstaller - j’ai juste checker le BIOS de ma carte mère ; sans réinstaller d’une install avec un processeurs I3 … et/où j’ai bien peur que ce i9 soit mort.

4 de charge avec «&nbsp;5 sites&nbsp;».

 ![Capture d'écran 2025-02-11 191643 - i9-9900K - dead - only ZW3B Websitess](https://www.debian-fr.org/uploads/default/original/2X/9/9ccd2f761e843d6d6dfbfe60330ced6eb5cf43d9.png)

C’est fou..

Ciao.

* * *

PS : J’espère que Orange\_FR a un Anti-DDOS sur son réseau pour ses abonnés 🤣 Cà arrive régulièrement les attaques (OVH bloque çà), au moins une 6 fois par an.

Thiouss !

---

<div class="post-metadata">

**Author:** ![anon36725218](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/8e8cbc/32.png) [@anon36725218](https://www.debian-fr.org/u/anon36725218)\
**Post date:** [Février 12, 2025, 2:14 UTC](https://www.debian-fr.org/t/http-1-http-2-http-3/90838/22 "2025-02-12T14:14:43Z")

</div>

J’ajoute un `-L` Maj à `curl` pour suivre les «&nbsp;rewrite, redirections HTTP&nbsp;» 😉 Bonne journée.

```auto
root@lb2.ww2:~ # curl -s -L -v -o /dev/null 'http://zw3b.fr/' 2>&1 | grep '^[<>] '
> GET / HTTP/1.1
> Host: zw3b.fr
> User-Agent: curl/7.88.1
> Accept: */*
>
< HTTP/1.1 301 Moved Permanently
< Date: Wed, 12 Feb 2025 14:08:36 GMT
< Server: Apache
< Strict-Transport-Security: max-age=31536000; includeSubDomains;
< Location: http://www.zw3b.fr/
< Content-Length: 227
< Content-Type: text/html; charset=iso-8859-1
<
> GET / HTTP/1.1
> Host: www.zw3b.fr
> User-Agent: curl/7.88.1
> Accept: */*
>
< HTTP/1.1 301 Moved Permanently
< Date: Wed, 12 Feb 2025 14:08:36 GMT
< Server: Apache
< Strict-Transport-Security: max-age=31536000; includeSubDomains;
< Location: https://www.zw3b.fr/
< Content-Length: 228
< Content-Type: text/html; charset=iso-8859-1
<
> GET / HTTP/2
> Host: www.zw3b.fr
> user-agent: curl/7.88.1
> accept: */*
>
< HTTP/2 200
< strict-transport-security: max-age=31536000; includeSubDomains;
< expires: Thu, 19 Nov 1981 08:52:00 GMT
< cache-control: private, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
< pragma: no-cache
< x-frame-options: deny
< x-zw-head: ZW3B.Networks D=4745548 t=1739369316684020
< x-zw-backnode: ww1.lb1.lab3w.com
< x-zw-lb-ipv4: 90.5.102.244
< x-zw-lb-ipv6: 2a01:cb1d:5:af00:1ab3:126:42:10
< x-zw-lb-name: fr.lb1.ww1
< referrer-policy: strict-origin-when-cross-origin
< content-type: text/html; charset=UTF-8
< date: Wed, 12 Feb 2025 14:08:36 GMT
< server: Apache
< set-cookie: lang=FR; expires=Fri, 14 Mar 2025 14:08:36 GMT; Max-Age=2592000; path=/; domain=.www.zw3b.fr
< set-cookie: PHPSESSID=vfj3cdati692ftpufudsik06u0; path=/
< set-cookie: theme=light; expires=Thu, 12 Feb 2026 14:08:36 GMT; Max-Age=31536000; path=/; domain=.www.zw3b.fr
< vary: Accept-Encoding
< x-content-type-options: nosniff
< x-forwarded-server: srv.fr.lab3w.com
< x-forwarded-for: 2607:5300:60:9389:15:2:a:10
< x-forwarded-host: (null)
< set-cookie: ROUTEID=.ww1.lb1.lab3w.com; path=/

```

@+

Cf : Considérations «&nbsp;[Internet.nl](https://Internet.nl)&nbsp;» 🙂

 ![Capture d'écran 2025-02-12 151134 - Redirection HTTP - Internet.nl](https://www.debian-fr.org/uploads/default/original/2X/4/4aa13276e10d91de554385ebb5f8cbf7d6906a42.png)

---

<div class="post-metadata">

**Author:** ![anon36725218](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/8e8cbc/32.png) [@anon36725218](https://www.debian-fr.org/u/anon36725218)\
**Post date:** [Février 12, 2025, 3:25 UTC](https://www.debian-fr.org/t/http-1-http-2-http-3/90838/23 "2025-02-12T15:25:46Z")

</div>

##### Load balancer d’IP over DNS for services HTTP

Je vous ajoute cet article qui date un peu, mais qui est très intéressant :

> [@Server DNS Bind9 - master 2 master & slaves](https://www.debian-fr.org/t/server-dns-bind9-master-2-master-slaves/90905/5):
>
> > _Guiguiabloc :_  
> > [Haute-disponibilité et Load-Balancing par Cascade de NS](https://blog.guiguiabloc.fr/index.php/2013/02/04/haute-disponibilite-et-load-balancing-par-cascade-de-ns/)
> > 
> > _Je vais vous parler d’une technique qui paraît bien triviale mais étonnamment efficace et largement employée dans les architectures disposant de 2 branches d’accès Internet._
> > 
> > _Après tout, dans votre soucis constant de disposer d’une architecture hautement disponible et partant du sacro-saint adage « on ne met pas les oeufs dans le même panier », vous avez décidé de confier l’accès internet de votre infrastructure à deux opérateurs différents (par exemple, si \> 2, cela marche aussi…)_
> 
> @+

* * *

**/!\**

Je crois que la raison que cela ne fonctionne plus (et pourtant çà fonctionnait bien au début de ma config «&nbsp;frontends&nbsp;» et" backends" HTTP/2).

J’ai l’impression que depuis moins de 2 semaines (parce que le jour et pendant la semaine quia suivis (mon commentaire ici, le HTTP/2 fonctionnait très bien) - quelque chose à changer (et pas dans la doc).

Sur la doc Apache [mod\_proxy\_http2 - Apache HTTP Server Version 2.5](https://httpd.apache.org/docs/trunk/mod/mod_proxy_http2.html)

Il explique cela ; en spécifiant que la variable «&nbsp;`ProxyPassReverse`&nbsp;» doit être laissé à «&nbsp;`https://`&nbsp;»

```auto
ProxyPass "/app" "h2://app.example.com" 
ProxyPassReverse "/app" "https://app.example.com"

```

Par contre sur la page «&nbsp;Guide de configuration d’un mandataire inverse&nbsp;» [mod reverse\_proxy - Apache Reverse Proxy Guide - Apache HTTP Server Version 2.5](https://httpd.apache.org/docs/trunk/howto/reverse_proxy.html) on configure «&nbsp;`balancer://`&nbsp;» à la variable «&nbsp;`ProxyPass`&nbsp;» et «&nbsp;`ProxyPassReverse`&nbsp;» et «&nbsp;`h2://`&nbsp;» sur les «&nbsp;membres&nbsp;».

```auto
<Proxy balancer://myset>
   BalancerMember h2://www1.example.com:8080
   BalancerMember h2://www2.example.com:8080
   
   # lbmethod = byrequests bytraffic bybusyness heartbeat
   ProxySet lbmethod=bybusyness
</Proxy>

ProxyPass "/" "balancer://myset/"
ProxyPassReverse "/" "balancer://myset/"

```

Et là, depuis quelques jours on dirait que les «&nbsp;backends&nbsp;» qui tournent avec PHP-FPM ne veulent pas rendre la réponse aux «&nbsp;frontaux&nbsp;», je suis presque sûr que cela vient de «&nbsp;proxy\_fcgi&nbsp;» sur les «&nbsp;backends&nbsp;».

Que les mecs de PHP-PFM se sont loupés quelque part, ci-dessus 😉

* * *

Qui peut réparer cela, merci.

@+

Romain.

[Page suivante](https://www.debian-fr.org/t/http-1-http-2-http-3/90838.md?page=2)
