Le site renvoie une erreur 502 Bad gateway - est-ce Ruby ?

Nous utilisons Discourse depuis au moins trois ans, et hier j’ai commis l’erreur de redémarrer l’instance en espérant que cela permettrait de changer de nom de domaine. L’instance est bien en cours d’exécution et nous constatons que nginx reçoit des requêtes provenant de l’extérieur, mais tous les visiteurs reçoivent en permanence une erreur « 502 Bad gateway ». Voici un exemple d’entrée dans le journal d’erreurs de nginx :

2020/06/22 19:03:26 [error] 11742#11742: *158 connect() failed (111: Connection refused) while connecting to upstream, client: 162.158.159.12, server: <my domain>, request: "GET                / HTTP/1.1", upstream: "http://127.0.0.1:3000/", host: "<my domain>"

Aucun serveur web ne fonctionne en dehors de Docker, donc le fichier app.yml se contente de rediriger les ports 80 et 443 vers le conteneur. Mais qu’est-ce qui est censé s’exécuter sur le port 3000 ? S’agit-il de Ruby / Rails ?

Bonjour Chris,

Oui, vous avez raison.

Rails fonctionne sur le port 3000 dans l’application Discourse.

Vous pourriez consulter le journal Rails dans l’application pour voir ce qui se passe avec Rails.

J’espère que cela vous aidera un peu.

Voulez-vous modifier le nom de domaine de votre instance ?

Des procédures sont en place pour cela. Si vous ne suivez pas le processus, cela peut provoquer des erreurs comme celle que vous rencontrez.

Veuillez suivre ce guide, il vous aidera à modifier correctement le nom de domaine.
Change the domain name or rename your Discourse

Il existe une alternative « développement » au domaine de production, et elle s’est somehow infiltrée dans la configuration de telle sorte que tout, sauf les images, provient du domaine de production, tandis que les images proviennent du domaine de développement. Comme ce dernier ne dispose pas de certificat, nous rencontrons (à juste titre) un problème de sécurité inter-sites et les images ne se chargent pas.

Nous tentons actuellement de reconstruire le conteneur, comme suggéré ailleurs.

Une complication supplémentaire est que tout le trafic passe par CloudFlare, nous rencontrons donc désormais des problèmes avec les certificats SSL. Je ne suis pas sûr que templates/cloudflare.template.yml fonctionne toujours ?

Vous devrez désactiver Cloudflare pour que Let’s Encrypt puisse émettre un certificat.

Tout est réglé maintenant. Notre meilleure équipe technique a réussi à créer une nouvelle version et a même fait fonctionner Let’s Encrypt !