@pfaffman — @Matthew_Lucas verwendet bereits die Socket-Vorlage, aber…
Ich verwende definitiv localhost für meinen externen Proxy, und das sollte mit der Einstellung expose funktionieren. Ich würde nicht erwarten, dass er die Docker-IP verwenden muss. Und ich würde nicht erwarten, dass dies aus diesem Grund nur mit Apache vor dem Docker-Container fehlschlägt.
Sie benötigen möglicherweise eine Header-Konfiguration – siehe Add an offline page to display when Discourse is rebuilding or starting up - #2 by codinghorror
Ich habe mein Bestes getan, um die Apache-Konfiguration zu vergessen, aber dieser Teil der Nginx-Konfiguration ist etwas, das Sie meiner Meinung nach mit Apache nachbilden möchten.
proxy_set_header Host $http_host;
proxy_http_version 1.1;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Real-IP $remote_addr;
Insbesondere glaube ich nicht, dass es ohne den Host-Header richtig funktioniert.
Da Sie kein HTTPS verwenden, sollten Sie mit tcpdump Paketspuren erfassen können, um genau zu sehen, was schief geht.
ABER warum überhaupt Apache dort einbauen? Es ist nur ein zusätzlicher Umweg. Wenn ich so etwas versuchen würde, würde ich den Amazon Load Balancer so einstellen, dass er direkt mit Port 8000 auf der EC2-Instanz spricht. Ich gehe davon aus, dass Sie HTTPS ohnehin am ELB beenden. Ich vermute, dass ihr Load Balancer die normalen Header kennt, die hinzugefügt werden müssen, ohne dass Sie sie angeben müssen, aber wenn nicht, geben Sie sie offensichtlich an. Stellen Sie einfach sicher, dass der Port über die Firewall zugänglich ist.
Ich bezweifle, dass ich hier noch viel Wertvolles beitragen kann, aber hoffentlich hilft Ihnen einiges davon bei Ihrer Konfiguration. Viel Glück.