メンテナンスページの回避策 - これって可能?

Visual Basicで昔々「Hello World」を1回やったことがある程度で、コーディングや開発の世界についてはほとんど何も知りません。でも、WordPressやMastodon/Pixelfedサーバー、そして何となくDiscourseの管理はそれなりにできるんです。それに、AIというものが存在します(ただし、宣伝されているほど初心者に優しいわけではありません)。

Dockerを使っているDiscourseでは、これが現実的に可能かどうかはわかりませんが、通常のNginx-Varnish-WordPress環境では、Pleskサーバーが50xエラーを検知してエラーページを表示するシステムを構築したことがあります。実際には3つの構成があり、Varnishがダウンした場合はフロントエンドのNginxが生成したスナップショットコンテンツを表示し、WordPress関連のバックエンドがダウンした場合はVarnishがキャッシュされていないコンテンツにスナップショットを使用し、3つ目はフロントエンドのNginxが応答しない場合のエラーページです。

Varnishの仕組みはDiscourseでは使えませんが、Dockerの世界でも50xエラーが発生した際にエラーページを表示するような複雑なシステム(スパイダーウェブのようなもの)を構築できない理由は見当たりません。

ただし、そのようなシステムは非常にエラーを引き起こしやすいものになるでしょう。そして、ユーザーが数十人を超えた場合に何が起こるのか、私には全く見当もつきません。

もちろん、最も明らかな解決策もあります:Discourseの前にNginxを配置するということです。2コンテナ構成に移行する以前、私はその方法を使っていました。