CloudflareプロキシでDockerのインストールが機能しない

DiscourseをホストするためにAmazon EC2インスタンスをセットアップしましたが、インストールスクリプトにすべての情報を入力して実行するまでは順調に進んでいました。その後、DiscourseのDockerイメージがポート80で動作するはずだったのですが、そうなっていません。

その理由が全くわかりません。一つ診断できたのは、Dockerコンテナを停止してから再起動すると、EC2インスタンスのIPアドレスにアクセスするとデフォルトのnginxサーバー画面が表示されることです。しかし、数秒後にはそれも表示されなくなります。

推奨された Docker インストールを使用しました。

ドメイン名にアクセスしても何も起こりません。IP アドレスにアクセスしても何も起こりません。

ポート 80 で実行されています。

Docker コンテナを停止して再起動すると、上記のようにデフォルトの nginx の「動作中」ページが表示されます。しかし、数秒後に再び動作しなくなります。

何が起きているのでしょうか?非常にイライラします。

このエラーログをどのように確認すればよいですか?

どのディストリビューションをお使いですか?標準の Ubuntu サーバーには nginx は含まれていませんので、手動でインストールしない限り、このページが表示されることはありません。

ホストで nginx が実行されている場合、それがインストールと干渉し、正常に動作しなくなる可能性があります。

やあ、ラファエル。返信ありがとう。

実は、本当の問題を回避するために /etc/hosts を変更してしまったのかもしれません。本当の問題は、インストーラーが使用しているホスト名ではポート 443 とポート 80 にアクセスできないと言っていたことです。

私はインストールを削除して最初からやり直すことにしました。そして、また同じことが起きています。なので、上記のことはすべて忘れて、最初から始めましょう。

なぜポート 443 と 80 にアクセスできないのでしょうか?

EC2 のセキュリティグループは、すべての着信 HTTP および HTTPS トラフィックを許可するように設定しているので、少し混乱しています。

標準インストールでは、システムにインストールされている nginx は使用されません。ホストに nginx がインストールされている場合、Discourse はポート 80 および 443 にアクセスできません。システムに nginx をインストールすることで、Discourse が標準設定で動作するのを妨げています。

これは Amazon には関係ありません。単なる Linux システム管理の問題です。

Setting up offline page のように、システムに nginx をインストールすることが適切な場合もありますが、そのためには Linux におけるポートの仕組みを理解する必要があります。:smiling_face:したがって、現在の状況が理解できない場合は、そこから始めないでください!)

「いいね!」 1

先ほど言いましたが、それは却下してください。

解決しました。

どうやら、Cloudflare が Discourse サブドメインのプロキシを許可することはできないようです。サブドメインの A レコードにあるオレンジ色のクラウドアイコンをクリックして、グレー(DNS のみ)に変更する必要があります。そうすれば、Discourse のインストールが適切なポートにアクセスする際に問題がなくなります。

ありがとうございます!

「いいね!」 1