Bonjour,
Je rencontre un problème de timeout, qui intervient au bout de 5s.
Je vous indique l'architecture
Un script shell tourne sur une redhat linux et un serveur web (apache like : ibm http server) sert ce script via l'activation des cgi , et renvoie le json qu'il génère.
En local, que cela soit en lançant le script ou en faitsant un curl vers le serveur web lançant le script, le résultat arrive bien, en 9s environ.
En surcouche j'utilise un serveur apache sur mon poste de travail windows seven, avec php installé (easyphp pour être précis).
Dans un de mes scripts php sur ce serveur web local, je fais appel à l'url surcitée, et au bout de 5s je me prend la page ... en fait un tableau vide ... puisque vous vous en doutez en 5s on ne récupère pas le résultat json d'un script qui met ... 9s à s'exécuter (pour info c'est un schell script d'analyse de filesystem).
Je ne rencontre ce problème que sur deux machines (sur 15) ou le shell est installé, et encore seulement sur un fs de chaque machine, sinon le résultat revient bien en moins de 5s.
Mais donc, pour résoudre ce problème de timeout, j'ai cherché du coté du httpd.conf de l'apache, du php.ini de php, et malgré les évolutions, le comportement ne change pas, au bout de 5s mon serveur web local me rend la main et n'attend pas les 9s pour récupérer le json tant souhaité ^^
Modifications effectuées (sans effet) :
1) httpd.conf de mon apache :
KeepAlive On
KeepAliveTimeout 30
RequestReadTimeout header=30 body=30
2) php.ini de mon easy.php
set_time_limit 30
max_execution_time 30
Cela donne donc pour mon phpinfo() :
Max Requests Per Child: 0 - Keep Alive: on - Max Per Connection: 100
Timeouts Connection: 60 - Keep-Alive: 30
Mais rien n'y fait, la requête dure 5s et me sert ... un 200 fier et joyeux avec aucune data (qui serait arrivée au bout de 9s) ... grrr ... je sais qu'un paramètre me manque mais j'ai besoin d'aide car je n'ai plus de recul, et je sèche là :-(
scenario avec Urls :
http://romegonic/monitoring/analyse_.../app/list/data (romegonic est le fqdn de mon serveur web local)
appelle :
http://ld002mid7074.cloud.group.gca/.../app/list/data
qui lance :
analyse_fs.sh?/app/list/data
Je rappelle que ce script fonctionne pour tous les autres filesystem, en local (sh ou curl), et même en curl à partir de mon poste de travail !
Donc c'est bien la surcouche apache/php de mon poste de travail qui provoque ce timeout précoce.
Si quelqu'un connaît une directive a activer (ou désactiver) sur apache ou php, pour augmenter ce temps d'attente, merci beaucoup par avance.
Partager