Discourse HTTPS WebSocket

こんにちは。

DiscourseでHTTPS経由のWebSocketの設定方法について、ガイドや例を提供していただけますか?

単純なHTTPは機能しますが、HTTPS経由で必要になります。

参考までに、他の投稿から読んだところ、これは試す価値があるかもしれません

いいえ、実際には、前述のように 80/443 で他のウェブサイトを問題なく実行しています。LiteSpeed も実行しており、メールサーバーもブロックされていません。8443 ポートでも試しましたが、何も表示されませんでした。Websocket では、HTTP で実行することはできましたが、HTTPS での混合コンテンツのために壊れていました。

Discourse は 80/443 以外のポートの組み合わせをサポートしていません

Discourse はサポートしないかもしれませんが、Docker はサポートします。それでも、ソケット経由で外部 Nginx に渡すことはできます。

これは 8080 よりも上位です。

唯一の問題は、HTTPS をどのようにしても機能させることができないことです。

だから、Discourseは80/443以外のポートをサポートしていないと言ったのです。
代替の組み合わせを試したいのであれば、自己責任でお願いします。

「いいね!」 1

私に言わせれば、それは本当に愚かなことです。通常、人々は同じサーバーで複数のサービスを実行しますが、あなたは文字通りユーザーにそうしないように制限しています。また、Dockerコンテナは通常、同じサーバーに単独で存在するわけではありません。デフォルト以外のポートをサポートしたくないという理由だけで、他の人に個別のサーバーを購入するように促しているようです。

Literally thousands of people host other services on the same server as discourse. There are ways to do this. If you do your research, it is a very well supported usecase. You need to put it behind a reverse proxy to achieve it.

Here is one way of doing it Run other websites on the same machine as Discourse

I have my public discourse sandbox hosted on a NUC which hosts multiple other services behind Nginx Proxy Manager but that’s my way of doing it. It isn’t officially supported but I know my way around it.

「いいね!」 1

それも以前試しましたが、うまくいきませんでした。いずれにしても、あなたが言ったように何千人もの人々がそれを行っているのに、この場合サポートのポイントが全く見えません。GitHubやWikiのどこにも、それを機能させるための明確な手順がありません。単一のサービスのように機能する80/443オプションだけです。

How to set up Discourse on a server with existing Apache sitesのようなリバースプロキシが必要になります。

「いいね!」 1

しかし、そもそもApacheを実行しているわけではなく、NginxとLiteSpeedが必要ですが、それでもポートを変更する方が簡単です。そうすれば、他のWebサーバーに簡単に渡すことができます。

いいえ、Dockerについては全く理解していません。しかし、以前、同じVPSでDiscourseをNginxとVarnishの前に使用していたときは、ソケットに問題なく使用できました。しかし、それは別のものですか?

現在、DiscourseはNginx/Varnishとは別のVPSにあり、ソケットを使用できません。そのため、Varnishは全員をポート82に送り、そこからDiscourseのVPSに転送します。そのため、以下のようになっています。

 expose:
  - "82:80"

しかし、これもDiscourseがポート80/443しか使用できないこととは全く別のことなのでしょうか?

nginxガイドを見つけるか、これを例として使用できます。

それは起こりません。httpsを実行するリバースプロキシが必要になります。

「いいね!」 2

動作する方法を見つけました。結局のところ、それほど難しくありませんでした。お好きなポートで Discourse を実行できます。

はい。Varnishを前面に配置すれば、URLは通常のHTTPS URLになりますので、DiscourseのDockerコンテナでポート82(または任意のポート)を開くことができます。VarnishがHTTPS証明書を管理している限り、期待どおりに進めるはずです。

「いいね!」 1