web-dev-qa-db-fra.com

Proxy Error 502: le serveur proxy a reçu une réponse non valide d'un serveur en amont

Nous construisons une application d'envoi de mailing en masse en Java. Le courrier est envoyé par un tiers SMTP. Après avoir envoyé 400 à 500 mails, le service Tomcat6 est arrêté. Ci-dessous est l'erreur.

Proxy Error Le serveur proxy a reçu une réponse non valide d'un serveur en amont. Le serveur proxy n'a pas pu gérer la requête GET /lin/Campaignn.jsp. Raison: erreur de lecture du serveur distant

En outre, une erreur 502 Bad Gateway a été rencontrée lors de la tentative d'utilisation d'un ErrorDocument pour gérer la demande.

Serveur Apache sur le port msizzler.com 80

Mais lorsque nous envoyons de localhost, je n’ai reçu aucune erreur. Il envoie tous les mails. S'il vous plaît, aidez-moi à résoudre ce problème.

46
Ranjeet Ranjan

La réponse HTTP 502 "Bad Gateway" est générée lorsque le serveur Web Apache ne reçoit pas de réponse HTTP valide du serveur en amont, qui est dans ce cas votre application Web Tomcat.

Quelques raisons pour lesquelles cela pourrait arriver:

  • Tomcat s'est peut-être écrasé
  • L'application Web n'a pas répondu à temps et la demande d'Apache a expiré
  • Les threads Tomcat arrivent à expiration
  • Un périphérique réseau bloque la demande, peut-être comme une sorte de délai de connexion ou de système de prévention des attaques par déni de service

Si le problème est lié aux paramètres de délai d'attente, vous pourrez peut-être le résoudre en procédant comme suit:

  • ProxyTimeout directive du mod_proxy d'Apache
  • Connector config d'Apache Tomcat
  • Le manuel de votre périphérique réseau
44
rmeakins

Ajoutez ceci dans votre fichier httpd.conf

Timeout 2400
ProxyTimeout 2400
ProxyBadHeader Ignore 
31
Albert Maclang

L'application Java met trop de temps à répondre (peut-être en raison du démarrage de/jvm étant froide), vous obtenez donc l'erreur de proxy.

Proxy Error

The proxy server received an invalid response from an upstream server.
 The proxy server could not handle the request GET /lin/Campaignn.jsp.

Comme Albert Maclang l'a dit, la modification de la configuration du délai d'attente http pourrait résoudre le problème. Je soupçonne que l'application Java génère une erreur de plus de 500, donc l'erreur de la passerelle Apache également. Vous devriez regarder dans les journaux.

4
Anthony Hunt

J'ai eu ce problème une fois. Il s'est avéré que c'était un problème de requête de base de données. Après avoir recréé les tables et l'index, cela a été corrigé.

Bien qu'il indique une erreur de proxy, lorsque vous consultez le journal du serveur, il indique le délai d'expiration de la requête d'exécution. C'est ce que j'avais avant et comment je l'ai résolu.

1
CincyBella