- ベストアンサー
tomcatの再起動とApacheの設定を自動化
Apache上のWEBサイトを通常のサイトからメンテナンス中へ切り替える ↓ tomcat を再起動 ↓ tomcatの起動を確認後 ↓ Apache上のWEBサイトをメンテナンス中から通常サイトへ切り替え これを全て時間を指定して(例えばAM4:00に)自動で行いたいのですが、何か方法はありますでしょうか? OSは、Cent OSです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
おっと、それは失礼しました。 Apacheの設定ファイル内の変更は、sed/awk/perlあたりで一行を無理矢理書き換えるとか、RCSを使ってリビジョンコントロールするとか、あるいは単にmvするとか、手段自体は色々あるかと思います。 ただ、エンタープライズレベルでエラーページを出す場合は、通常、負荷分散装置でやりますね。 OSSでどこまで出来るかは私も認識していないのですが、PoundやUltraMonkey-L7について調べてみると、そういった機能が見つかるかも知れません。 あるいは、Reverse Proxyを置けばその問題を軽減できるかも。 単純に、設定変更してGraceful Restartでも、それほど大きくないサイトなら困らないと思いますが、本当に止められないのであればそういったことが考えられます。 5秒程度新規アクセスが切れたとしても、メンテナンス前後のことであれば、ユーザの利便性やストレスはそんなに悪化しないと思いますけどね…。
その他の回答 (1)
- beefisdead
- ベストアンサー率63% (92/145)
スクリプト作ってcronで動かす。以上。 しかしWebサイトを毎日メンテナンスに入れるというのはちょっと筋が良くないですね。 それに、自動で再起動するのもかなり怖い。お客様がいるまともなサイトなら、責任持って再起動を見張るか、再起動失敗したときにアラートが人間に飛んで対応できるようにする必要があります。 なお、「tomcat起動後」という動作は、シェルスクリプトの&&で繋ぐ方が正当ですが、どうせエラーが起きたら人力対応が必要なので、単純な逐次実行でも大差ないでしょう。
お礼
beefisdeadさま ご回答ありがとうございます。 > スクリプト作ってcronで動かす。以上。 それはそうなのですが、単純にtomcatを再起動するだけではなく、問題はApacheだと思うので、そちらの処理をどうすればいいかお知恵をお貸しいただければと思い、投稿いたしました。 1.Apacheのルートディレクトリを一時的に変更して 2.tomcatを再起動 3.一定時間後Apacheのルートディレクトリを元に戻す というのが思いつく限りの方法ですが、1.と3.をスクリプトで処理するとしたら、どういう記述になるのでしょうか?
お礼
beefisdead様 ご回答ありがとうございます。 様々なヒントをいただきましたので、当方に最適な方法を探りたいと思います。 新しく何か(ソフト的にもハード的にも)導入する、という事が難しそうですので、できるだけ単純な方法を取りたいとは思っています。 サーバーは評価段階のプログラムが動いており、アクセスに関してはクリティカルな問題はありません。 現在メモリを異様に食いつぶしている感があり、時間が経つとレスポンスが悪くなっています。 ただ、一部業務上使用しているWEBサイトがあり、日中メンテナンスができないということで、今回の方法(夜中に自動再起動)を取れないか、ということになりました。 また、夜中でも全くアクセスが無い訳ではありませんので、念のためメンテナンス中のページを出した上で再起動をしよう、ということなのです。