Aujourd’hui, j’ai essayé d’ajouter un deuxième serveur pour héberger l’une de nos instances Discourse. Le conteneur est configuré pour utiliser des serveurs Redis, PostgreSQL et de stockage externes ; il ne s’agit que de l’application web. Jusqu’à présent, nous faisions fonctionner les sites sur un seul serveur derrière HAProxy sans aucun problème. Lorsque nous utilisons deux serveurs derrière HAProxy, nous constatons de nombreuses erreurs 404 de la part de Nginx pour les fichiers JS. Le retrait de l’un ou l’autre serveur de HAProxy résout le problème. Les URL des fichiers qui renvoient une erreur 404 semblent identiques, je suis donc perplexe quant à la raison pour laquelle aucun des deux serveurs ne les sert.
Aucune surcharge n’est configurée dans les paramètres de développement. Nous utilisons la version stable 2.4.3.
Cependant, chaque conteneur conserve ses propres copies des assets générés par l’étape assets:precompile. Est-il nécessaire de partager les assets précompilés ?
À part ajouter et supprimer des backends dans HAProxy, qu’avez-vous fait pour tester cela ?
Votre configuration HAProxy utilise-t-elle des backends aléatoires ou l’affinité ? Le 404 est-il enregistré par HAProxy ? Est-il enregistré par nginx ? Est-ce le premier ou le second backend qui échoue ? Votre site nécessite-t-il une connexion ? Pouvez-vous reproduire les erreurs en vous connectant directement à nginx depuis derrière le serveur proxy ? Les fichiers demandés existent-ils sur le disque ? S’agit-il de tous les fichiers JS ou seulement de certains ?