443以外のポートで実行: 非ポートURLへのリダイレクトを無効にする

app.yml を以下のように変更しました。

expose:
  - "20632:80"   # http
  #- "443:443" # https
  - "20633:443"

そして https://mydomain.com:20633 で Discourse を開こうとしましたが、https://mydomain.com にリダイレクトされ、機能しません。

以下を使用した場合:

expose:
  - "20632:20632"   # http
  #- "443:443" # https
  - "20633:20633"

netstat -tulpn ではこれらのポートでリッスンしていることが示されますが、アクセスしようとするとタイムアウトします。

サブフォルダで実行されている meta . discourse . org/t/serve-discourse-from-a-subfolder-path-prefix-instead-of-a-subdomain/30507 を見つけましたが、これは該当しません。

meta . discourse . org/t/install-discourse-on-a-residential-internet-with-cloudflare-tunnel/211297 も見つけました。
これは正しい方向に向かっていますが、私が求めているものとは完全には一致しません。

PS フォーラムへのリンクを削除したことをお詫びします。それ以外では投稿できません。

「いいね!」 1

標準以外のポートでの実行はサポートされていません。80/443ポートがすでに占有されている場合は、それらが占有されていない別のサーバーを使用するか、他のサービスとDiscourseからリバースプロキシを実行する必要があります。

「いいね!」 3

「サポートしていません」という言葉は、状況によっては「ここでは期待できるヘルプの範囲を超えています」という意味ですが、今回は「試すことすら時間の無駄です」という意味です。

「いいね!」 1

ポートは通常の意味で「占有」されていません。Discourse はそのシステムでポート 80 と 443 を取得できます。これはすでに別のサーバーで実行されています。

リダイレクトを無効にする/URL からポートを削除するステップで詰まっており、そうすればすべてが期待どおりに機能するはずです。

「いいね!」 1

そのリダイレクトは防げません。

標準ポートで公開できない場合、まったく機能しません。 :80/443 が利用可能なサーバーを使用するか、代替のディスカッションプラットフォームを選択する必要があります。

「いいね!」 1

nginx リバース プロキシ構成についてお手伝いいただけますか?

いくつか試しましたが、うまくいきませんでした

server {
    listen 20633 ssl;
    server_name mydomain.com;
	
	ssl_certificate /etc/letsencrypt/live/mensa.myftp.org/fullchain.pem;
	ssl_certificate_key /etc/letsencrypt/live/mensa.myftp.org/privkey.pem;

    location / {
        # 正規表現を使用して proxy_pass URL からポートを削除します
        # 正規表現でキャプチャされた部分 ($1) は、proxy_pass URL で置き換えられます
        # 実際のバックエンドサーバーの IP とポートは、proxy_pass ディレクティブで個別に指定されます
        proxy_pass http://192.168.178.31:80/;
		#$request_uri;
		proxy_redirect http://192.168.178.31:80/ $scheme://$host:20633/;
		#return 301 $scheme://$host:$server_port/home;
		#proxy_redirect http://192.168.178.31:20633 $scheme://$host:80;
        
        # クライアントからバックエンドサーバーに送信された Host ヘッダーを保持します
        #proxy_set_header Host $host;
		proxy_set_header Host $http_host;

    }
}
「いいね!」 1

Discourse を実行しているマシンで他のウェブサイトを実行する方法については、こちらのガイドを参照してください。

「いいね!」 2

そのチュートリアルは、Unixソケット経由で同じサーバーで実行するためのものです。別のシステムで別のポートでリバースプロキシを実行するための設定もありますか?このケースはより頻繁に発生する可能性があるため、あるはずだと思います。別のホストにはすでに証明書があります。
明確にするために:このセットアップはテスト専用です。本番環境ではポート443で実行されますが、開発およびテストでは、自宅のVMで完全に十分であり、その間サーバーを借りるコストを節約できます。