レンタルサーバー
BIG-server.com
簡単・はやい・大容量・どんな目的にもマッチするレンタルサーバー
HOME プライス お見積もり・プラン選択 お申し込み ユーザーサポート お問い合わせ

■ 【ぷろじぇくと ぞうさん】 〜E-Bananaサーバ 構築日記〜

1日目 2日目 3日目 4日目 5日目 6日目 7日目
8日目 9日目 10日目 11日目 12日目 13日目 14日目
15日目 16日目 17日目 18日目 19日目 20日目 21日目
22日目 23日目 24日目 25日目 26日目 27日目 28日目
29日目 30日目 31日目 32日目 33日目 34日目 35日目
36日目 37日目 38日目 39日目 40日目 41日目 42日目
43日目 44日目 45日目 46日目 47日目 48日目 49日目
50日目 51日目 52日目 53日目 54日目 55日目 56日目
57日目 58日目 59日目 60日目 61日目 62日目 63日目
64日目 65日目 66日目 67日目 68日目 69日目 70日目
71日目 72日目 73日目 74日目 75日目 76日目 77日目
目次に戻る
第70日目:【Apache】root弟(´・ω・`)のApache二重化講座!

どうも、('A`)です。
えーと、「aniki」システムの再テスト・検証・修正を進めていますが、そんな中で以前
第64日目の日記でちょっと触れました「Apacheの二重化」についてroot弟(´・ω・`)から
社内サーバで成功したと報告を受けたので、今回発表します。
昨日報告を受けた時に「えっ、こんな方法で二重に動くんだ」と今更ながら知った('A`)で
ございます。
流石root弟(´・ω・`)は普段からApacheをイジイジしているだけの事はあります。
という訳で、今回はroot弟(´・ω・`)に説明をお願いしようと思います。
('A`)/じゃ、よろしく〜


root弟(´・ω・`)(以下、(´・ω・`))
「どうも、今回は('A`)に代わりまして、Apacheの二重化についてご説明いたします。
まず、T-Bananaとかに動いているApacheですが、ソースからインストールしています。
バージョンは2.0.59を使用していて、PHP5に対応しています。」

('A`)「で、結論から言うと、どうなの?」
(´・ω・`)「うわっ!どうして急に現れるかなあ・・・」
('A`)「え、何と言うか、、、話が長くなりそうだから。」
(´・ω・`)「相変わらず『せっかち』ですね・・・えーと、二重化するには以下の
     方法でIPとか設定ファイルとかをコピー&修正すると動きます。」
('A`)「おっ、ちょっと見てみるかな。。。」

(´・ω・`)「今回は社内に設置しているサーバを使って、以下のサイトが
     見れる様にApacheを二重で動かしてみました。」

http://jw48.maido3.cc/ (219.166.251.48)
http://jw482.maido3.cc/ (219.166.251.46)

で、サーバのメインIPは 219.166.251.48、サブのIPは 219.166.251.46 です。
通常弊社パッケージでApacheをインストールすると、メインIPで稼働する様に
仕上がります。その状態で、サブのIPでもう1つApacheが起動する様に以下の
作業を行ないます。

【1.IPをサーバーに追加】
/etc/rc.conf にサブのIPを追記して、その後サーバをリブートする。
ifconfig_[interface]_alias0="inet [ipaddress] netmask 255.255.255.255"
(例)
ifconfig_em0_alias0="inet 219.166.251.46 netmask 255.255.255.255"

この時、サーバをリブートしないでサブのIPを有効化するなら、以下のコマンドを
実行します。
ifconfig [interface] alias [ipaddress] netmask 255.255.255.255
(例)
ifconfig em0 alias 219.166.251.46 netmask 255.255.255.255

コマンド実行またはサーバリブート後、ifconfigコマンドでIPが追加されたか
確認する事を忘れずに実行する事。

【2.logbufferの複製】
Apacheのログを出力するプログラムは logbuffer を使用しますが、
二重化に際して logbuffer の複製 (logbuffer2とか)を作ります。
logbuffer は /usr/local/sbin/logbuffer に設置されているので、
cp /usr/local/sbin/logbuffer /usr/local/sbin/logbuffer2
と実行し、パーミッション(750)とか所有者(root:wheel)が同じか
確認する事。

※2つのApacheで同一のlogbufferを使用すると、うまく動かないです。

【3.新しいhttpd.confの作成】
既に存在しているhttpd.confをコピーして、/usr/local/apache2/ に
httpd2.conf として作成します。
(場所は判り易い所が良いでしょう。)

で、以下の箇所を修正します。
  1)logbufferの変更
    TransferLog "| /usr/local/sbin/logbuffer"
     ↓
    TransferLog "| /usr/local/sbin/logbuffer2"
  2)出力先ログファイルの変更
    LogFormat "/var/httpd/access_log %h %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\""
     ↓
    LogFormat "/var/httpd/access_log2 %h %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\""
  3)Listen行の変更
    Listen 219.166.251.48:80
     ↓
    Listen 219.166.251.46:80
   ※ここで、Listen 80 と書かれた行はコメントアウトしておく。
  4)PidFileの変更
    PidFile logs/httpd.pid
     ↓
    PidFile logs/httpd2.pid

('A`)「・・・って、これだけ?」
(´・ω・`)「そうです。修正点はこれだけです。もしかすると、userやgroupを
     変更する必要があるのかもしれませんが、変更しなくても動きました。
     でも・・・www2とかに変えた方が良いのですかね?」
('A`)「(うっ、)どうなのかなあ・・・(判んないよ、そんな事)
   で、起動はどうやってするの?」
(´・ω・`)「あー、はいはい。起動方法は以下の様になります。」

(´・ω・`)「既にインストールされているApacheを起動する場合は、以下のコマンドを
     実行します。」
      httpd -k start -DSSL
      (SSLを特に使用していなければ、 httpd -k start でOKです。)
      
(´・ω・`)「で、もう一方のApacheを動かす場合には、-f オプションで設定ファイルを
      明示して起動します。」
      httpd -f httpd2.conf -k start -DSSL


(´・ω・`)「と、いう事です。」
('A`)「いやあ、すごい、すごい!流石だね。」
(´・ω・`)「あ、でもちょっと判らない事があるんですよ。通常のCGIとかPHPはこれで
     動きますが、DSOを動かす時に他にも修正が必要なのかどうなのかな、って?
     後はuserとかgroupとか変更すると動くのかなあ。。。って」
('A`)「うーん、まだまだ検証が必要って事か・・・」

まあ、もう1つApacheをインストールせずに、設定ファイルのコピーなどを作って
動いた事は収穫でした。
後はhttpd.confの記述でどういう動かし方ができるのかroot弟(´・ω・`)に引き続き
調べてもらいましょう。

今後も時々root弟(´・ω・`)の発表会を設けていきたいと思います。
(本人は乗り気じゃないかもしれないけど、ね。)
ただ、サポート現場も担当していたりすると、MySQLとかPHPとかApacheについて
質問とか設定変更とか色々な事が舞い込みます。
で、対応した結果蓄積された解決法とかを将来的に皆さんにもお伝えできればなあ、
と考えています。

あ、また別件が入ってきちゃった・・・
それでは、また。

[追記 18:30]
情けない。本当に情けない・・・
こんな事に気付かなかったなんで、情けない。
えーと、matdの「自動切り離し・組み込み」の仕組み(仮称:「anikiシステム」)の
稼働実験をテスト環境で再実行していたら・・・なんで動かなかったのか判りました。
anikiシステムについては第62日目の日記で設置方法を書いていたのですが、、、
「speedo」サーバでanikiシステムを起動するシェルスクリプトmatd_check.shの
パーミッションが「700」ではなく「644」になってました。
(('A`)これじゃ動かんよ・・・orz)

フロントサーバの1つについて、Apache(httpd)を停止する事で切り離しが行われるか、
そしてApache(httpd)を再起動して、再びmatd.cfに該当サーバが組み込まれるかを
テスト環境で再度動作確認し、正常に切り離し・組み込みされる事を確認しました。
また、「speedo」サーバのシェルスクリプトについてパーミッションを700に直して、
cronからちゃんと起動される様にしました。

で、改めてc21とc24にakiniシステムの環境を入れ込みますが、matdのシステムの
ディレクトリ構成等がテスト環境と違うので、そこら辺の整合性を事前に合わせながら
システムを入れ込む作業を進めます。。。


69日目に戻る。   71日目に続く。

1日目 2日目 3日目 4日目 5日目 6日目 7日目
8日目 9日目 10日目 11日目 12日目 13日目 14日目
15日目 16日目 17日目 18日目 19日目 20日目 21日目
22日目 23日目 24日目 25日目 26日目 27日目 28日目
29日目 30日目 31日目 32日目 33日目 34日目 35日目
36日目 37日目 38日目 39日目 40日目 41日目 42日目
43日目 44日目 45日目 46日目 47日目 48日目 49日目
50日目 51日目 52日目 53日目 54日目 55日目 56日目
57日目 58日目 59日目 60日目 61日目 62日目 63日目
64日目 65日目 66日目 67日目 68日目 69日目 70日目
71日目 72日目 73日目 74日目 75日目 76日目 77日目
目次に戻る

いま一番お得なページ! 解析
Copyright (C) 1997-2008, big-server.com. All Rights Reserved. server@maido3.com
レンタルサーバー BIG-server.com
Powered By Maido3.com