質問

Linux/Apache/Tomcat スタックで実行されている Web サイトを持っていますが、サーバーのメンテナンスのために数か月ごとに自動的にオフラインにする必要があり、これは任意の期間継続します。Apache に「サーバー メンテナンス」ページを表示または削除させるためのオプションは何ですか?

シェルスクリプト経由でこれを制御できる必要があります。(Google が提供した答えはサーバー構成の手動編集に関するもので、午前 3 時にオフィスにいるのは嫌です!) スクリプトを .htaccess ファイルにドロップし、完了したら削除できると思います。しかし、それはあまり優雅ではないように思えます。


解答解説:

マイクの答え ベストプラクティスの答えのように見えますが、私がやることはおそらくもっと似ています ダンの答え サードパーティのホスティングプロバイダーがロードバランサーを制御しているため、その混乱に対処したくないからです。ありがとう!

役に立ちましたか?

解決

まさにそれを行うセットアップが用意されていますが、これには Apache だけではありません。ロードバランサーとその背後に 2 つのサーバーがあります。どちらの Web サーバーも Apache を使用して Web サイトを提供し、そのうちの 1 台には単純な HTML メンテナンス ページを提供する追加の仮想ホストがあります。ロード バランサーには、リクエストを実サーバーにリダイレクトする仮想 HTTP サービスがあります。この仮想サービスには 3 つの実サーバーがあります。2 つは実際のサーバーで、3 番目はメンテナンス ページを指す 2 番目のサーバー上の仮想 IP です。実サーバーは可能な限り最小の重みをもつ 3 番目で重み付けされ、ロード バランサーは固定重み付けアルゴリズムを使用します。そのため、何らかの理由で実際の Web サイトがオフラインになると、すべてのリクエストがメンテナンス ホストに送信され、ユーザーには電話番号が記載されたわかりやすいエラー ページが表示されます。実際、私は小さなスクリプトを使用して実サーバーの健全性をチェックしているため、トラブルの兆候が見られるとすぐにメンテナンス ページが表示されます。

PS.ロードバランサーにはLoad Master 1500を使用しています。

他のヒント

カスタム構成ファイルを使用して Apache を起動するのは非常に簡単です。私のシステムでは:

httpd -f <config>

私はこれをシェル スクリプトと組み合わせて、メンテナンス プレースホルダーとして非常にシンプルな構成として定期的に使用しています。スクリプトは通常の Apache を停止し、これを開始するだけです。

2つの設定ファイルを作成し、前後に入れ替えます

ファイルが少しだけ変更される場合は、それらを一種のプリプロセッサでマージし、1 つのソースから標準バージョンと「オフライン」バージョンの両方を生成し、それらの間で交換します。

IIRC では、Apache 構成ファイルはとにかく CPP を使用してビルドされます

私たちも同様のことをしたことがあります。メインサイトのページにリダイレクトするindex.htmlがあります。メンテナンス時には、HTML ファイル内のリダイレクトを変更するスクリプトを実行します。次に、cron と viola の自動メンテナンス ウィンドウのスクリプトを実行します。

お役に立てば幸いです!

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top