HTTPのみ(HTTPSなし)でDiscourseをインストールする

Discourse をシステムにインストールしようとしているのですが、うまくいきません。

ホストマシン上で nginx サーバーが動作しており、Discourse はそのホスト上の専用 VM で実行されています。nginx サーバーはすべての SSL 処理と HTTP から HTTPS へのリダイレクトを担当しています。nginx と Discourse 間では平文の HTTP で通信させたいと考えていますが、Discourse 側で SSL を無効にする方法がわかりません。

SSL を設定した状態では、HTTP からのリクエストが HTTPS へ無限にリダイレクトされる現象が発生します。

以下が私の nginx 設定のスニペットです。

    server {
      listen 443 ssl;
      listen [::]:443 ssl;

      server_name forum.example.com;

      # SSL 設定 ...
            ssl_certificate         /etc/nginx/certificates/cloudflare-example.com.pem;
            ssl_certificate_key     /etc/nginx/certificates/cloudflare-example.com.key;

      # Discourse へのリバースプロキシ:
      location / {
        proxy_pass http://192.168.1.123:80/;
        proxy_http_version 1.1;
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_read_timeout 120;
      }
    }

app.yml から以下の行をコメントアウトし、./launcher rebuild app で再構築を試みました。

#  - "templates/web.ssl.template.yml"
# - "templates/web.letsencrypt.ssl.template.yml"

しかし、HTTP サーバーが起動しません。

このような設定に関する手順書は存在しますか?それとも、nginx と Discourse 間で SSL を設定する必要があるのでしょうか?

「いいね!」 2

おそらく、nginx がアプリと同じ 80 ポートでリスニングしていることが原因だと思います(もしかしたら違うかもしれません。VM に関する問題の部分をすっ飛ばして読み進めてしまいました :sweat_smile:)。web.socketed テンプレートを使用すれば解決するはずです(https の使用も含まれます)。

「いいね!」 4