Es scheint ein Problem mit iptables und Docker zu geben. Das sind die Stichworte, nach denen Sie suchen sollten. Es handelt sich nicht um ein Discourse-Problem.
Das deutet für mich darauf hin, dass das Docker-Netzwerk nicht funktioniert. Selbst wenn Discourse und Redis ordnungsgemäß arbeiten, kann Discourse nicht auf Redis zugreifen, weil das Netzwerk und/oder Docker defekt sind.
Meine Vermutung ist, dass diese Probleme irgendwann nach der Installation von firewalld aufgetreten sind und dass dies Ihre Installation beschädigt hat.
Ich habe den firewalld-Dienst gestoppt, Docker neu gestartet und den fehlerhaften Container ebenfalls neu gestartet, aber der Fehler bleibt derselbe (in production.log):
Error connecting to Redis on localhost:6379 (Errno::ENETUNREACH) subscribe failed, reconnecting in 1 second.
Ich habe einige Fortschritte gemacht. Meine Konfiguration verwendet Apache 2.4 als Proxy. In meiner Konfiguration habe ich Folgendes hinzugefügt:
RemoteIPHeader X-Forwarded-For
Um die ursprüngliche IP-Adresse zu verfolgen.
Nach dem Neustart von httpd konnte ich auf Discourse zugreifen (mit einer Warnung zum Ablauf des SSL-Zertifikats). Das habe ich ebenfalls behoben, und jetzt funktioniert alles gut, aber mit deaktiviertem firewalld.
Ich habe viele Beiträge über Probleme zwischen Docker und firewalld unter CentOS 7 gefunden. Ich werde also wieder zu iptables wechseln.
Bezüglich der Redis-Fehlermeldung: Nach den oben genannten Schritten erscheint diese nur noch, wenn Docker gestoppt wird. Beim Neustart wird sie nicht angezeigt, daher gehe ich davon aus, dass das in Ordnung ist.
Danke!
2 „Gefällt mir“
csmu
(Keith John Hutchison - Ceiteach Seán Mac Úistin)
7
Nachdem ich das gelesen hatte, habe ich Docker auf unserem Centos-Server gestoppt