DiscourseをApacheと一緒にインストールする解決策を見つけるのに1週間費やした結果、DiscourseのNginx偏向的な設計により、Apacheの背後でDiscourseにSSLを有効化することが事実上不可能なため、やむを得ず次のステップについてアドバイスを求めています。
現在のホスティング環境の構成:
- Digital Oceanの$10ドロプレット
- Ubuntu 18.04
- HTMLフロントページ用にLet’s Encrypt SSLを備えたApache
- PHP、MySQL、phpMyAdmin
- Webmin(SSLなし)
- Discourse
WordPressをインストールする柔軟性を維持したいと考えているため、Apacheの方がWordPressとの互換性が高いと読んだことから、Nginxが唯一の解決策だとは思っていません。
私の目標: Discourseを別のドロプレットに分離することなく、ドメイン全体(Discourseを含む)でSSLを有効化することです。Nginxを限定的に使用する必要がある場合は構いません。この混乱を解決するためのチュートリアルをどこで見ればよいか、アイデアが欲しいだけです。
ありがとうございます。
「いいね!」 3
fzngagan
(Faizaan Gagan)
2
「いいね!」 1
EricGT
(EricGT)
3
似たような状況を探していましたが、貴社はすでにそのプロセスの先を進んでいます。設定についていくつか不明な点がありますので、よろしければお答えください。
- リバースプロキシは導入されていますか?
- リバースプロキシで SSL を処理していますか?
- 他のサーバーは SSL を行わず、リバースプロキシに SSL 処理を任せていますか、それとも 多層防御 の考え方に基づき、各サーバーで SSL を実施していますか?
- リバースプロキシとサーバー間の通信は、ポートではなくソケット exclusively として行われていますか?
neounix
(Dark Matter)
5
参考までに、本番環境(Unix ソケット使用)で Discourse のリバースプロキシとして Apache2 と nginx の両方を広くテストしましたが、nginx は「はるかに高速」というわけではありません。
この構成では nginx の方が「わずかに高速」ですが、その速度差はユーザーには気づかれません。
さらに、Webmaster ツールの Google ページスピードテスト(Lightspeed)でも、時間の経過に伴う平均値において、2 つのリバースプロキシ間に有意な差は現れません。
この参考意見は理論や他者の記述の繰り返しに基づくものではなく、実世界の本番環境テストに基づいています。
当社はすべての Discourse インスタンスを Apache2 リバースプロキシの背後で運用しています(当初は nginx リバースプロキシでした)。これは、すでに LAMP アプリをホストしているサーバー上で、多くの Web サイト(バーチャルホスト)を運用したいという希望によるものです。
Apache2 を nginx の代わりにリバースプロキシとして使用したいという方は、誰でも問題なく利用できます!この事実は、Discourse を Apache2 および nginx を含む幅広いユーザー/ホストに容易に利用可能にしています。
「いいね!」 3
@fzngagan 私は最初からやり直すつもりはありません。また、そのチュートリアルは CentOS 向けのもので、私が投稿で明確に Ubuntu を使用していることを述べているにもかかわらずです。
@EricGT 私が共有した解決策を、自分自身のスレッドで確認してください。Nginx や CentOS 以外を使用する場合、サポートを見つけるのは事実上不可能です。このスレッドがその証拠です。私の質問には回答が得られず、代わりに Apache 対 Nginx という話題外論争が行われました。
その通りかもしれませんが、Apache の方が広くサポートされています。Discourse は、実質的にユーザーに Nginx を強制する唯一のフォーラムソフトウェアです。そのため、より一般的で、新規ユーザーにとって容易であり、サポートも入手しやすい Apache に固執したいと考えています。「チューニング」には興味はありません。
しかし、Discourse コミュニティはそれを積極的に discourage し、サポートを提供することを拒否しています。例外として、サポートされていないチュートリアルへのリンクを貼るだけです。私は複数のスレッドを作成し、さらに多くの質問を投げかけましたが、あなたの設定を共有して(別のスレッドで)サポートに最も近い対応をしてくれたのはあなただけでした。そして、初心者の私には、それを解釈し、自分の環境に適用することが期待されました。それ以外はすべて「古いチュートリアルを確認してください」という返答か、話題外のおしゃべりです。
「いいね!」 1
さて、何度も明確にお伝えしている通り、時間と精神衛生上の制約により、無料でサポートできることには限界があります。そのため、試す人の95%にとってうまく機能する標準化されたインストール方法を用意し、それを完全にサポートしています。
カスタマイズされたインストールに対する有料サポートオプションをご検討の場合は、Marketplace をご参照いただくことをお勧めします。
「いいね!」 3
このフォーラムは主にピアツーピアなので、あなたの発言は全く意味を成しません。さらに、私は複雑な質問をしたことはなく、 outdated または誤っているにもかかわらず継続的にリンクされている既存のチュートリアルに関する clarification や更新を求めただけです。適切なリバースプロキシを取得するために、ホスティングプロバイダーの DigitalOcean から支援を受けました。オープンソースソフトウェアであっても、それは驚くべきことです。
あなたの返答からは、ここでの「サポート」は単なるアップセルのための茶番であるという印象を受けます。
neounix
(Dark Matter)
23
@OrbitStorm さんへ
まず第一に、私たちは本番環境で Discourse を Apache2 リバースプロキシの背後で運用しており(複数のインスタンスで)、セットアップ時に全く問題が発生しませんでした。必要に応じて Google で検索するという、誰もが躊躇なく行う通常の対応以外には問題ありませんでした。
第二に、私は Discourse チームやメタフォーラムの anyone に Apache2 をリバースプロキシとしてサポートするよう求めたことはありません。なぜなら、この構成は公式にサポートされていないからです。Discourse は(私の知る限り)「公式に」マルチコンテナ構成、Apache2 などのリバースプロキシ、Kubernetes、Docker Swarm、そして無数の他の構成をサポートしていません。この great なソフトウェアを無料で提供し、Github 上のすべてのコード、すべてのコミットをオープンソース化している Discourse チームが、「公式にサポートされる構成」を制限することは理解でき、正しいことです。Jeff さんがこの点を非常に適切に要約してくれました:
私たちが何度も明確に述べている通り、時間と精神衛生上の制約により、無料でサポートできることには限界があります。 - Jeff A.
第三に、Discourse は Apache2 をリバースプロキシとするような「サポート対象外」の構成に関するいくつかのチュートリアルを提供しています。しかし、リバースプロキシのセットアップ自体は「Discourse 固有のタスク」ではありません。リバースプロキシのセットアップは、Discourse を含むあらゆるバックエンドアプリケーションに共通する「一般的なシステム管理タスク」です。
私たちは Apache を、Discourse、Docker Registry、その他の Docker コンテナやアプリを含む複数の Web アプリケーションの前にリバースプロキシとして運用しています。Apache2(または nginx)をリバースプロキシとして使用することは、Discourse に固有のものではなく、一般的なシステム管理タスクです。
第四に、アプリケーション向けに Apache2 をリバースプロキシとして設定する方法については、ネット上に膨大な量の情報があります。この問題について Discourse チームをいじめることは、あなたの目的にとって全く不要であり、役にも立ちません。「茶番」といった言葉を使ったり、人をいじめたりすることは、不正確であり、あなたの目的(あるいはここにいる誰の)にも役立ちません。
以上をまとめますと、@OrbitStorm さん(これはあなたのトピックに関する私の最後の投稿ですので、よくお読みください)、J.A.さんの親切で忍耐強い言葉を含め、これまでに述べられたこととして、あなたには多くの選択肢があります。
- ネット上で Apache2 をリバースプロキシとして設定する方法を学ぶことができます(私たちはこれを行いました)。これは楽しく、無料で学べる一般的なシステム管理タスクです。
- 学びたくない場合、自分で「解決策を見つけられない」場合、または時間がない場合は、誰かに依頼することもできます。
- ここで怒鳴り散らし、メタフォーラムやこのフォーラムを「茶番」と呼んだり、個人としてサポートさせるために誰かをいじめようと侮辱を浴びせたりすることもできます。
Discourse ユーザーであり、数十年のシステム管理者経験を持つ者として、私はあなたが #3(いじめや威圧はメタチームには通用しません、これは確信しています)を選ばないことを強くお勧めし、お金を使わずに助けを得たい場合は #1 を検討することを勧めます。
Discourse 向けに Apache2 をリバースプロキシとして設定するのは、実は非常に簡単です。これに関する Discourse メタの投稿(最近のものもあれば、古いものもあります)があり、Web アプリ向けに Apache2 をリバースプロキシとして設定する方法については、ネット上に無数のチュートリアルがあります。技術は同じです。リバースプロキシモードで実行する際は、Unix ソケットを公開することを推奨します。
正直に言って、Discourse 向けに Apache2 を仮想ホストのリバースプロキシとして設定するのは楽しいものです。この素晴らしいソフトウェアを無料で提供してくれている開発者たちに侮辱を浴びせ、ストレスを感じる必要は何もないはずです。Discourse は無料の贈り物です!公式にサポートされる構成以外で Discourse を設定したい場合、誰もあなたを止めたりしません!
最後に @OrbitStorm さん、Discourse ユーザー(チームメンバーではありません)として、メタでサポートを求めるためにいじめるというアプローチを変更することを強く勧めます。繰り返しになりますが、私は「公式にサポートされていない」構成で Discourse を運用しており、他の人々を支援するためにここで更新情報やコードを投稿してきました(この素晴らしいコミュニティへの還元です)。Apache2 をリバースプロキシとして設定する、フォローしやすい動作するコードを、私だけでなく他の人々もすでに投稿しています。
どうか #1(自分でやる)か #2(誰かに依頼する)を選んでください。そして、現在の #3(メタチームを威圧し、いじめ、侮辱する)のアプローチはやめてください。もし #3 を選ばれるなら、Unix や Linux フォーラムに投稿し、そこで私をいじめてください。好きなだけいじめてください 
「いいね!」 2
TL;DR: 何言ってんの?
あなたは元のトピックに一切触れずにこの長文をまとめ、攻撃もされていないものを「ホワイトナイト」しようとする無駄な努力を費やしました。あなたは私を「いじめっ子」と呼んでいますが(笑)、私は知性に関する人身攻撃を繰り返す人物のトピック外なナンセンスに応えただけです。さらに、このスレッドを Nginx についての自分の主張の場として使っていました(これらのコメントは都合よく削除され、このフォーラムが新規ユーザーに対して育む毒性の証拠を埋め尽くすために消されました)。あなたの最初の投稿もあまり変わらず、私の質問に答えたように見せながら実際には答えていませんでした。あなたは問題の一部です。
あなたは義務について話し続けていますが、実際にはスティーブンと同じように、私のスレッドに執拗に応えて議論をふっかけ続けています。人気のあるホスティング設定(W3Techs が以前引用され、Apache が 67% のシェアを示しています)のサポートを求めることを禁止するルールが存在するとは知りませんでした。承認しなかったなら単に私のスレッドに無視していればよかったのに、あなたは挑発的になり、会話を脱線させました。
私は古びたチュートリアルを受け入れて二度と戻らないという現状に同調していないため、あなたの言葉を実際に意図的に誤って伝えています。この設定に関するほぼすべてのスレッドが未解決のまま放置されている理由の一つは、あなたのような人々からの「いじめ」です。投稿する前に十分な調査をしなかったと本当に思っていますか?私は何が来るか承知していましたが、私の立場にある他の人々(EricGT のように)が、この状況が威圧的な「回答」で完全に潰される前に何か価値あるものを提供してくれることを期待していました。
私は 16 年間ゲーム開発に携わってきましたが、ここ 5 日間で経験したような異常なまでの非専門性と小物ぶりはこれまで一度もありません。これは Reddit レベルの陳腐さであり、完全に冗談です。
これもまた、その典型例です。信じられません。
Benjamin_D
(Benjamin Decotte)
25
SSL 設定がプロキシ背後のアプリとどう関係するのか、私には理解できません
。app.yml で SSL テンプレートが無効化されていれば、問題ないはずです。nginx、apache、haproxy、traefik はすべて、SSL を有効にし、ホスト上の証明書場所を指定し、いくつかの SSL パラメータを設定するという、スニペット/サーバーブロック/バーチャルホストという同じ概念を持っています。ここにはドラゴンが潜んでいるかもしれませんね?
あなたが探している解決策は Discourse に関するものではなく、Apache に関するものだと思います。仮想ホストを備えた、すぐに動作する SSL 設定の Apache 構成であれば、Discourse とも問題なく動作するはずです。他のリバースプロキシでもそうでしたから。ただし、少し楽観的すぎるとは思います
。
ただ、暗号化方式(ciphers)について問題があった記憶があります。Docker コンテナ内で使用されているもの(行が非常に長いので)を慎重にコピー&ペーストしてください。
この「滑りやすい斜面」についてですが、スキーのオフパルス(ゲレンデ外滑走)のようなものだと思います。楽しいですが、山岳救助隊からは非常に嫌がられます。熟練したスキーヤーか、まだ修行中のスキーヤーかに関わらず、谷に転落した時のリスクは全く異なるものです。
どうか、プロフェッショナルかどうかにかかわらず、親切にしてください
「いいね!」 2
皆さん、この話題からは一時的に離れる必要があります。私たちができる限りのサポートはすべて行いました。
「いいね!」 4