@pfaffman — @Matthew_Lucas уже использует шаблон с сокетами, хотя…
Я определённо использую localhost для своего внешнего прокси, и это должно работать с настройкой expose. Я не ожидаю, что ему потребуется использовать IP-адрес Docker. И я не ожидаю, что из-за этого будет происходить сбой только в случае, когда перед контейнером Docker стоит Apache.
Возможно, вам потребуется конфигурация заголовков — см. Add an offline page to display when Discourse is rebuilding or starting up - #2 by codinghorror
Я стараюсь как можно больше забыть о конфигурации Apache, но этот раздел конфигурации nginx — это то, что, как мне кажется, вам нужно будет воспроизвести в Apache.
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;
В частности, я не думаю, что это будет работать правильно без заголовка Host.
Поскольку вы не используете HTTPS, вы должны иметь возможность использовать tcpdump для захвата трассировок пакетов, чтобы точно увидеть, что идёт не так.
Однако зачем вообще добавлять Apache? Это лишний шаг. Если бы я пытался что-то подобное, я бы настроил балансировщик нагрузки Amazon для прямого обращения к порту 8000 на экземпляре EC2. Я предполагаю, что вы всё равно завершаете HTTPS на ELB. Подозреваю, что их балансировщик нагрузки знает, какие обычные заголовки добавлять, без необходимости указывать их вручную, но если нет — конечно, настройте их сами. Просто убедитесь, что порт доступен через фаервол.
Сомневаюсь, что у меня есть что-то ещё ценное, что можно добавить здесь, но надеюсь, что хотя бы часть этого поможет вам с конфигурацией. Удачи.