128MB / vSwap 256MBサーバーの使い道(4)

前回までの調整で、128MB / vSwap 256MB上であっても、OPCache + ACPuの組み合わせでメモリー負荷を軽減させることが出来、機能としてはほぼ実用範囲と言える結果となったわけだが、このようなサーバーの使い道としては、むしろ、Server Exchengerのような用途としたほうが、リソースを喰わないし、ドメインの付け替えなどを行うことを前提に考えると、重たいプロセスは、他所のサーバーへ分散してしまうというような考え方の方が、利用用途がはっきりして良い。

そこで、今回は、他所にある無料サーバーへApacheのmod_proxy機能を使ってproxyを形成することにした。
このサーバー上に残すのは、httpdプロセスのみとし、MySQLやその他の重いphpプログラムは走行させない。
こうすることで、他所にあるドメイン違いのサーバーへも、見た目はこれまでと同じ動作で透過プロキシを作ることが出来るので、サーバー移転などに伴うドメインの付け替え作業は円滑に済ませることが出来る。

実施内容
/etc/httpd/conf.d/virtual/**.conf を書き換える
---
<VirtualHost *:80>
   ServerName px24.xaffy.net
   ProxyPass / http://px24.other-domain.com/
   ProxyPassReverse / http://px24.other-domain.com/
   <Location />
      Order deny,allow
      Deny from all
      Allow from all
   </Location>
</VirtualHost>
---

以上のような設定をしつつ、新しく設置する「px24.other-domain.com」上では、MySQLのインポートを実施した上で、WordPressのサーバー名はこれまでと同じにしておくと、WordPressの走行系のみをother-domain.comへ転送して実行できる。

厳密なことを言うと、WordPress上でアップストリームを実行するようなプログラムは、動作しない場合も考えられるが、実質的なWordPressの動作は、転送先のother-domain.comをURLベースに使うので、問題は起こらないはずである。
以上を実施しつつ、無料サーバーではマルチドメイン動作が不可能でも、見た目はマルチドメインのように振る舞うので、利便性が高くなる。

実質的経路としては、一旦ローカルサーバーを経由するので、通信速度自体は、ローカルサーバーと遠隔地にある転送用サーバーの通信速度に依存するが、ローカルサーバーの負荷分散の実験を実施するにはこのようなリソース制限のあるサーバーは、うってつけであった。

ここまでの設定でも動作は可能なのだが、大元となるWebサーバーの負荷がこれまでの約半分のメモリー負荷となったり、CPU占有率が更に下がる。当たり前といえばそのとおりなのだが、経由するサーバーの負荷は、Apacheの固定ページを構成した場合の負荷程度に抑えられるのでリソースが限られるサーバーに専有するMySQL+PHPといった比較的重い動作の処理は、適宜、OPCache+APCuを使うなどして軽減しながら運用したり、今回のように、重い処理は外部のWordPressに最適化されたサーバーへ、Proxyを形成するなどとすれば、サーバー負荷を軽減しつつ、マルチ接続に対する負荷分散が実用レベルで可能である。
また、経由する通信経路を複数用意しておけば、通信回線の負荷分散にも寄与出来るので簡単な並列処理も可能になってくる。

DNS Tableの設定
Primary-domain-name  A xxx.xxx.xxx.xx1
Primary-domain-name  A xxx.xxx.xxx.xx2
Primary-domain-name  A xxx.xxx.xxx.xx3

などとし、xxx1~xxx3へ同様の設定をしておけば、経由するサーバーを複数指定出来、xxx1,xxx2,xxx3は必ずしも透過プロキシで無くても良いので、どれか一つに、キャッシュ付きのリバースプロキシを置けば、転送先までの経路のCacheサーバーとして動作することになるので、適宜に経路を切り替えながら稼働させることも可能となる。