PHPの開発で質問です。


負荷分散により、複数のサーバーを使用しての開発をしております。
ただ、あくまで公開部分のみを複数台のサーバーにし
DBサーバーと管理画面は、一つのサーバーで設置します。

その場合、管理画面で、画像をアップロードするシステムを入れる場合は
どの様な処理をすれば宜しいのでしょうか?
全てのサーバーに画像をFTPか何かでアップロードするのでしょうか?

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2010/04/22 22:15:04
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:Bombastus No.1

回答回数409ベストアンサー獲得回数52

ポイント27pt
  1. 「公開部分のみ」というのは、Webアプリケーションサーバを意味していますか?
  2. 「画像をアップロード」というのは、そのアプリケーションサーバに静的に画像ファイルを置くことを意味していますか?

両方ともYESであれば、通常、ある1台のアプリケーションサーバに静的ファイルを置き、それを自動的に全サーバに配布するシステムを組み込みます。

最も手軽な方法としては、rsyncを使う方法があります。

id:makocan

ご質問の点は、おっしゃるとおりでございます。

2010/04/16 06:52:50
id:cuspos No.2

回答回数49ベストアンサー獲得回数10

ポイント27pt

こんにちは。

アプローチとしては2つ考えられそうです。


Bombastusさんが仰る方法が1つ目です。

1.管理画面にファイルをアップ(この段階では1台のみ)

2.ファイルを公開サーバーと同期する

※アップデートは同期処理で実施すると思いますが、ファイルを公開サーバーと同期するには、システムの要件によりますが多少工夫がいるかもしれません。rsyncがお手軽ですね。


2つ目はちょっと回答からずれるかもしれませんが、mogileFS等の分散ファイルシステムを使う方法です。

http://builder.japan.zdnet.com/sp/open-source-software-moonlinx-...

分散ファイルシステムに画像を置いておけばいいだけで同期処理の部分は気にしないでよくなります。ファイルシステム自体が今回の要件に適合するかの性能評価は必要ですが。

id:makocan

shellに関して、明るくないため、素人な質問ですみませんが

rsyncに関してですが、コピー元とコピー先に、IPをしていして

同期するということなのでしょうか??

2010/04/16 13:37:50
id:cuspos No.3

回答回数49ベストアンサー獲得回数10

ポイント26pt

こんばんは。

要件が全部わからないので何とも言えませんが、rsyncに関しては以下のURLが参考になるかと。deleteオプションで管理サーバとフロントサーバと同期してあげればよいのではと思います。

http://www.itmedia.co.jp/enterprise/articles/0804/21/news013_2.h...

phpはちょっと離れてしまっていますので適切かどうかわかりませんが、system()、exec()あたりでスクリプトを叩いてあげれば実現できそうです。

後は同期処理とするか非同期処理とするか検討すれば要望の動作になるかと思います。

単純に管理サーバの特定のディレクトリと同期すればよいだけであればlsyncdなんかでもいいかもしれません。

http://sourceforge.jp/projects/freshmeat_lsycnd/

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません