配置 Discourse - 环境 AWS Linux 2 AMI 和 Apache2 (httpd)

@pfaffman@Matthew_Lucas 已经在使用了带插槽的模板……

我肯定会为我的外部代理使用 localhost,这应该可以与 expose 设置配合使用。我不认为它需要使用 docker IP。而且我也不认为这会因为这个原因而仅在 Apache 位于 docker 容器前面时失败。

您可能需要进行标头配置 — 请参阅 Add an offline page to display when Discourse is rebuilding or starting up - #2 by codinghorror

我一直在尽力忘记 Apache 配置,但我认为您需要弄清楚如何用 Apache 复制 Nginx 配置的这一部分。

    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 负载均衡器直接与 EC2 实例上的 8000 端口通信。我假设您无论如何都会在 ELB 上终止 HTTPS。我怀疑他们的负载均衡器知道要添加的正常标头,而无需您指定它们,但如果不是,显然可以设置它们。只需确保防火墙可以访问该端口。

我怀疑我还能提供多少有价值的信息,但希望其中一些能帮助您完成配置。祝您好运。

1 个赞