Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Apache Discussion :

Erreur HTTP 503


Sujet :

Apache

  1. #1
    Futur Membre du Club
    Erreur HTTP 503
    Bonjour,

    J'ai mon appli qui tourne avec un apache et un Tomcat, et à certain moment il peut arriver que la page web renvoi le message d'erreur HTTP 503 service Unavailable.
    Suite à ça le serveur est inaccessible pendant 1 minutes.

    Mes Questions sont: est ce que l'erreur 503 peux être lié a mon "keepalivetimeout" qui n'est que de 15s?
    et ensuite qu'est ce qui provoque le blocage du serveur/appli pendant 1 minute si ce paramètre peux être supprimé.

    Merci pour vos potentiel retour.

    Cordialement.

  2. #2
    Membre chevronné
    Bonjour,

    L'erreur 503 est, habituellement, un indicateur de surcharge.
    Le temps d'attente dépend de l'évacuation de la charge (les utilisateurs qui partent en gros).

    C'est pour cette raison qu'on fait souvent une évaluation du nombre de visites simultanées afin de connaître la configuration serveur à utiliser.
    Pour des sites avec énormément de visites, on peut aussi mettre plusieurs serveurs en série (avec réplicats et tout le toutim) et un load balancer.
    Le load balancer permet de choisir, lorsqu'un visiteur arrive, vers quel serveur le rediriger.

  3. #3
    Futur Membre du Club
    Bonjour et merci pour ton retour,

    Enfaite pour te faite un topo du context,

    j'ai plusieurs serveurs (replicat etc comme tu l'as indiqué) et un load balancer qui permet de redirigé correctement cependant il peux y avoir une très forte charge de connexion simultané. et parfait de façon aléatoire l'appli renvoi cette fameuse HTTP 503 et suite à ça le serveur (sur lequel le user est redirigé) est bloqué pendant 1 minute pour tout les users. (paramètre que je trouve pas et dont les devs ne savent pas rep non plus ...)

    je recherche donc ou dans mes logs bien identifié la remonter de lerreur 503 (catalina.log ? log httpd ? ...)

    Merci .

  4. #4
    Membre chevronné
    Rebonjour,

    Il s'agit d'une réponse Apache, donc c'est dans les logs d'Apache
    Bien qu'il s'agisse d'une erreur, je pense qu'il est bon regarder à la fois le access_log et le error_log (en commençant par ce dernier of course ^^)

  5. #5
    Futur Membre du Club
    Merci beaucoup pour ton aide,

    je ne vois rien sur mes logs ( surement du faite ou l'erreur et momentannée et que je ne retombe pas sur le moment du 503.

    Cependant ça peut être lié à mon pool de connexion qui est plein ?

    et surtout pourquoi derrière les accès sont bloquer 1 minute a tout les utilisateurs ?

    merci pour ton aide précieuse

  6. #6
    Membre chevronné
    Je t'avoue que là, ça dépasse mon champ de compétences ^^'

    Mais d'après ce que tu dis, si l'accès est bloqué pour tout le monde, est-ce que ça ne serait pas ton load balancer qui est surchargé ?
    Ceci expliquerait également que tu ne trouve pas de log dans les Apache des machines

    Comme je l'ai dit plus haut, je ne suis pas spécialiste en la matière mais même si le load balancer est sensé aider car il ne fait qu'une chose (rediriger des utilisateurs), ça reste une machine avec ses limites.
    D'après ce que j'ai pu lire, c'est particulièrement problématique quand la charge n'est pas du tout constante mais arrive par GROOOOS paquets à un moment précis.

  7. #7
    Futur Membre du Club
    je vais look du coté du LoadBalancer

    J'ai continué à chercher et je suis également tomber sur une piste à savoir le "mod_jk" en regardant les logs de certains de mes serveurs (au hasard ne sachant pas sur qu'elle serveur peut être dirigé l'utilisateur) et dans les logs de Mod_jk j'ai

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
     
    [Wed Oct 23 14:52:44.914 2019] [30177:163842016] [error] ajp_get_reply::jk_ajp_common.c (1962): (worker1) Tomcat is down or refused connection. No response has been sent to the client (yet)
    [Wed Oct 23 14:52:44.914 2019] [30177:163842016] [error] ajp_service::jk_ajp_common.c (2440): (worker1) sending request to tomcat failed (unrecoverable),  (attempt=1)


    est ce que cela pourrais venir du mod_jk qui fait notamment le lien entre Apache et Tomcat ??

    et qui aurais une coupure TCP et qui renverrais donc l'erreur 503

    -> coupure TCP du au pool de co full
    -> timeout dépasser à cause du load balancer qui peux pas redirigé à cause d'un GROOOS flux de connexion simultané


  8. #8
    Membre chevronné
    En cherchant ton message d'erreur, je suis tombé sur un post de StackOverflow qui semble avoir les mêmes soucis que toi et qui dit :

    Citation Envoyé par StackOverflow
    Turns out the answer was to change the keepalive timeout. All I needed to stop this from happening was to change the KeepAliveTimeout from 15 to 2 and add MaxRequestsPerChild of 5000. I found this stopped this issue from recurring
    Donc :
    - changer le KeepAliveTimeout de 15 à 2
    - ajouter MaxRequestsPerChild 5000