Comment réparer apache2 "proxy_http:error" AH01102 : error reading status line from remote server localhost:4382.
J'ai un serveur web apache2 qui est utilisé pour servir quelques applications nodejs dans le backend.
Version du serveur web Apache2 : Version du serveur : Apache/2.4.41 (Ubuntu) Serveur construit : 2019-08-21T20:43:05
Version de Nodejs : v10.18.1
Version de la base de données Mongo : v4.0.15
Nous sommes confrontés à l'erreur suivante (voir les journaux) sur toutes nos applications backend. "proxy_http:error" AH01102 : error reading status line from remote server localhost:4382.
[Mon Apr 27 20:09:05.697271 2020] [proxy_http:error] [pid 26792:tid 140063099688704] (70007)The timeout specified has expired: [client 178.153.198.97:52385] AH01095: prefetch request body failed to 127.0.0.1:4381 (localhost) from 178.153.198.97 (), referer: https://www.example.com/sub-admin/menus/add-menu
[Mon Apr 27 20:21:51.617095 2020] [proxy_http:error] [pid 26764:tid 140062901626624] (104)Connection reset by peer: [client 178.153.195.206:61268] AH01102: error reading status line from remote server localhost:4382, referer: http://www.example.com/restaurant/dashboard
[Mon Apr 27 20:21:51.617117 2020] [proxy:error] [pid 26764:tid 140062901626624] [client 178.153.195.206:61268] AH00898: Error reading from remote server returned by /restaurant/assets/img/avatars/5.jpg, referer: http://www.example.com/restaurant/dashboard
[Tue Apr 28 03:51:28.498423 2020] [proxy_http:error] [pid 26793:tid 140062868055808] (104)Connection reset by peer: [client 89.211.117.185:57622] AH01102: error reading status line from remote server localhost:4382, referer: http://www.example.com/restaurant/dashboard
[Tue Apr 28 03:51:28.498455 2020] [proxy:error] [pid 26793:tid 140062868055808] [client 89.211.117.185:57622] AH00898: Error reading from remote server returned by /restaurant/static/css/main.f8d32764.chunk.css, referer: http://www.example.com/restaurant/dashboard
Jusqu'à présent, j'ai essayé les choses suivantes pour résoudre cette erreur.
-
ProxyPreserveHost On - Cela n'a pas fonctionné.
-
disablereuse=on. Cela n'a pas fonctionné.
-
Timeout=600, puis Timeout=900. Cela n'a pas fonctionné.
-
retry=1 acquire=3000 timeout=600 Keepalive=On. N'a pas fonctionné.
-
SetEnv force-proxy-request-1.0 1
SetEnv proxy-nokeepalive 1
Travail de courte durée (12 heures). La même erreur s'est reproduite avec à peu près la même fréquence que précédemment.
- SetEnv proxy-initial-not-pooled 1
SetEnv proxy-nokeepalive 1
Celui-ci a fonctionné pendant 24 heures. Puis, après 24 heures, cette erreur s'est reproduite. Bien que cette fois-ci, après 24 heures, l'erreur ne se produit qu'une fois par heure, parfois seulement. une fois toutes les deux heures, parfois une fois toutes les deux-cinq heures.
1Q. Tout d'abord, pourquoi cette erreur se produit-elle ?
2Q. Cette erreur se produit-elle uniquement à cause d'Apache ou l'application nodejs peut-elle aussi être coupable ?
(Mais il n'y a pratiquement aucun journal d'erreur de l'application, lorsque cette erreur apache se produit).
3Q. Comment/Quelle est la meilleure façon d'identifier, de diagnostiquer et de résoudre cette erreur, car après avoir cherché sur différents forums, personne ne semble avoir résolu cette erreur. sur différents forums, personne ne semble avoir résolu cette erreur parfaitement ou avoir une bonne et ce depuis 2006, en regardant certains forums.
Voici mon fichier de configuration apache
<VirtualHost *:443>
ServerAdmin root@example.com
ServerName www.example.com
ServerAlias example.com
SSLEngine On
SSLProxyEngine On
SSLCertificateFile "/etc/ssl/private/server.crt"
SSLCertificateKeyFile "/etc/ssl/private/server.key"
ProxyRequests Off
#Admin
ProxyPass /admin http://localhost:4380/
ProxyPassReverse /admin http://localhost:4380/
SetEnv proxy-nokeepalive 1
SetEnv proxy-initial-not-pooled 1
ProxyPass /restaurant http://localhost:4382/
ProxyPassReverse /restaurant http://localhost:4382/
SetEnv proxy-nokeepalive 1
SetEnv proxy-initial-not-pooled 1
ProxyPass /sub-admin http://localhost:4385/
ProxyPassReverse /sub-admin http://localhost:4385/
SetEnv proxy-nokeepalive 1
SetEnv proxy-initial-not-pooled 1
#API
ProxyPass /admin-api/ http://localhost:4381/
ProxyPassReverse /admin-api/ http://localhost:4381/
SetEnv proxy-nokeepalive 1
SetEnv proxy-initial-not-pooled 1
ProxyPass /restaurant-api/ http://localhost:4379/
ProxyPassReverse /restaurant-api/ http://localhost:4379/
SetEnv proxy-nokeepalive 1
SetEnv proxy-initial-not-pooled 1
</VirtualHost>