負荷分散により、複数のサーバーを使用しての開発をしております。
ただ、あくまで公開部分のみを複数台のサーバーにし
DBサーバーと管理画面は、一つのサーバーで設置します。
その場合、管理画面で、画像をアップロードするシステムを入れる場合は
どの様な処理をすれば宜しいのでしょうか?
全てのサーバーに画像をFTPか何かでアップロードするのでしょうか?
両方ともYESであれば、通常、ある1台のアプリケーションサーバに静的ファイルを置き、それを自動的に全サーバに配布するシステムを組み込みます。
最も手軽な方法としては、rsyncを使う方法があります。
こんにちは。
アプローチとしては2つ考えられそうです。
Bombastusさんが仰る方法が1つ目です。
1.管理画面にファイルをアップ(この段階では1台のみ)
2.ファイルを公開サーバーと同期する
※アップデートは同期処理で実施すると思いますが、ファイルを公開サーバーと同期するには、システムの要件によりますが多少工夫がいるかもしれません。rsyncがお手軽ですね。
2つ目はちょっと回答からずれるかもしれませんが、mogileFS等の分散ファイルシステムを使う方法です。
http://builder.japan.zdnet.com/sp/open-source-software-moonlinx-...
分散ファイルシステムに画像を置いておけばいいだけで同期処理の部分は気にしないでよくなります。ファイルシステム自体が今回の要件に適合するかの性能評価は必要ですが。
shellに関して、明るくないため、素人な質問ですみませんが
rsyncに関してですが、コピー元とコピー先に、IPをしていして
同期するということなのでしょうか??
こんばんは。
要件が全部わからないので何とも言えませんが、rsyncに関しては以下のURLが参考になるかと。deleteオプションで管理サーバとフロントサーバと同期してあげればよいのではと思います。
http://www.itmedia.co.jp/enterprise/articles/0804/21/news013_2.h...
phpはちょっと離れてしまっていますので適切かどうかわかりませんが、system()、exec()あたりでスクリプトを叩いてあげれば実現できそうです。
後は同期処理とするか非同期処理とするか検討すれば要望の動作になるかと思います。
単純に管理サーバの特定のディレクトリと同期すればよいだけであればlsyncdなんかでもいいかもしれません。
ご質問の点は、おっしゃるとおりでございます。