こんにちは。
Discourse は独自のサーバーで実行することが推奨されていますが、このプロジェクトは私自身の費用で運営しており、基本的には趣味の範囲です。少なくとも短期的には収益化の展望や意図はほとんどありません。
そのため、別の VPS を購入する代わりに、2 つ目の IP アドレスを申請し、IP ベースの Apache 仮想サーバー上で WordPress を実行することを考えています。これによりコストを抑えることができます。
これは可能でしょうか、それとも非推奨でしょうか?
こんにちは。
Discourse は独自のサーバーで実行することが推奨されていますが、このプロジェクトは私自身の費用で運営しており、基本的には趣味の範囲です。少なくとも短期的には収益化の展望や意図はほとんどありません。
そのため、別の VPS を購入する代わりに、2 つ目の IP アドレスを申請し、IP ベースの Apache 仮想サーバー上で WordPress を実行することを考えています。これによりコストを抑えることができます。
これは可能でしょうか、それとも非推奨でしょうか?
リバースプロキシの設定に精通している場合は、2 番目の IP アドレスは不要です。
Discourse と WordPress の両方を Unix ソケット(またはより高いポート)でリッスンさせ、その前にリバースプロキシソフトウェア(Caddy を推奨)を配置して、同じ IP で blog.example.com と forum.example.com を提供することも可能です。
ただし、このような設定に不慣れな場合は、それぞれを独自の VPS で実行する方がはるかに簡単です。それぞれの豊富なドキュメントに従うだけで済みます。
あなたが推奨する設定は問題なく機能しますか?
Discourse を最初に試していた頃、HAProxy で何か設定しました。当時はサーバー関連の知識があまりなく、今でも初心者ですが、とにかく試して、その過程で HAProxy について少し学びました。記憶が正しければ、SSL に問題があり、Discourse の動作もやや不安定でしたが、おそらく私が何か間違っていたのでしょう。
そこで質問ですが、あなたが推奨する設定を、不安定さや「奇妙な」問題なしに、過度な微調整をせずに実現することは可能でしょうか?
はい、リバースプロキシを適切に設定すれば可能です。実際、このサイト自体もそのように運用されています。
ただ、ここであらゆるリバースプロキシの設定に対するサポートを提供することはできません。
素晴らしい!
最後のお願いですが、この設定を行うためのヘルプドキュメントへのリンクをいただけますか?
素晴らしいですね。
以前私が試行錯誤していた頃、Apache のガイドに従いました。しかし、その記事では以下の点が明確ではありません。
“8888:80” # ホストのポート 8888 をコンテナのポート 80 (http) に転送
… という行の例しか示されておらず、app.yml ファイルの直後の行(デフォルトでは…
… となっている行)がどのように記述すべきかについての説明がありません。
追伸:app.yml ファイルを確認してこの投稿を書いている最中に、以下の行が存在することに気づきました。
… しかし、現時点ではこれらの行のコメントを外していないにもかかわらず、私の Discourse アプリは SSL 有効で動作しています。現在の設定(プロキシなし)や、目指している設定(プロキシと Apache + WordPress を使用)において、これらの行のコメントアウトがどれほど重要なのでしょうか?
![]()
リバースプロキシに不慣れで、簡単に2番目のIPアドレスを取得できる場合、それは悪い解決策ではありません。以下のように設定してください。
expose:
- "192.168.1.1:80:80" # http
- "192.168.1.1:443:443" # https
これで解決しました。
ありがとう。
Configure direct-delivery incoming email for self-hosted sites with Mail-Receiver のリンク先で、同じテクニックを実行できます。
ありがとうございます。これで解決しました。私の VPS プロバイダーは、VPS に設定されたメインの IP に加えて、安価な「フローティング IP」を提供しています。このソリューションは私にとって非常に便利で、シンプルであるだけに、もっとよく文書化されるべきだと思います。
expose:
- "my_floating_ip:80:80"
- "my_floating_ip:443:443"
それでうまくいきましたか?ドロプレットがフローティング IP のことを知っているとは思いませんでした。
さて、問題なく動作しています:
まず、フローティングIPを購入してVPSに紐付けます。
次に、サーバーがそれを使用するように設定します:
vim /etc/network/interfaces.d/60-my-floating-ip.cfg
auto eth0:1
iface eth0:1 inet static
address your.Float.ing.IP
netmask 32
保存してネットワークを再起動します:
sudo service networking restart
これで2つのIPアドレスが使えるようになりました。メインのIPを使って複数のnginxサイトを構成していますが、/etc/nginx/sites-enabled の設定行にご注意ください:
listen my_main_IP:80 myserver.name;
listen my_main_IP:443 ssl http2 myserver.name;
そしてフローティングIPは /var/discourse/containers/app.yml で以下のように設定します:
expose:
- "my_floating_ip:80:80"
- "my_floating_ip:443:443"
すべて正常か確認します(元のIPはfloating_ipとmain_ipとして編集済み):
# netstat -taunp | grep -i listen
tcp 0 0 floating_ip:80 0.0.0.0:* LISTEN 19775/docker-proxy
tcp 0 0 main_ip:80 0.0.0.0:* LISTEN 13151/nginx: master
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 725/sshd
tcp 0 0 floating_ip:443 0.0.0.0:* LISTEN 19763/docker-proxy
tcp 0 0 main_ip:443 0.0.0.0:* LISTEN 13151/nginx: master
tcp6 0 0 :::22 :::* LISTEN 725/sshd
名前を挙げてよいのか分かりませんが、サーバーはHetzner Cloud上にあり、フローティングIP機能はとても便利で価格も適切です。
なるほど!そんなことができるなんて知りませんでした!
このテクニックを使えば、複数のドメイン向けの 複数の受信メールサーバー を実行することもできます。
素晴らしい仕事ですね!
なるほど!だから仕組みがわからなかったんですね。
これは古いトピックであることは承知していますが、皆さんに感謝したかったのです。これは、私が取り組んできた同様の問題に対する数日間の作業を節約できるかもしれません。この貴重な情報を皆さんと共有してくれてありがとう!!