パラメトリックJSアルバム
  • カラー画像
更新ページ
カテゴリー
パラメトリックaffiliateエリア
実際には、当ページのヘッダー部分に表示させています。
Lightbox JS v2.0
実装手順はここをクリックしてください。また、prototype.js関数を利用しています。
パラメトリックFLASH
を新設しました。戻って、押してみてください。
×をクリックすれば停止できます。


複数サーバーで処理速度を向上

 英語化 

【副題】:JavaScriptマルチサーバー化
※ 本WikiにおけるJavaScript呼び出しは、Livedoor Wiki側固有のJavaScript以外、全て、本ページで紹介したことを実践し、DNSの切り替えによって複数のサーバーより分散して接続しております。 http://js2007.fs4y.com が、本Wiki等から実際に呼び出されるJavaScriptサーバー用の専用URLです。(^^)  はい、筆者のWikiは、たくさんの JavaScriptファイルを呼び出しております。遅い方には、済みません。m(__)m

 本ページの最終更新日時: 2008/03/08 09:20am JST 

JavaScriptサーバーを複数設置し、JavaScript読み込みストレスを軽減させることを目的としたのが、このページの設置の目的です。
JavaScriptのサーバーURLを、仮に
http://js2007.js.com と仮定します。

架空アドレスです。

【目次】



まずは、ドメイン管理をサポートしている Web Hosting を複数手配します。(または手配準備をします)

■ 自宅サーバー >>
自宅サーバーがLinux+Apacheで稼動しているのなら、VirtualHostの設定だけですかね。自宅サーバーは外せないです。
XREA >>
XREAさんも、「独自ドメインを使ったウェブの設定」で可能。
byethost >>
「Domain Manager」画面で設定可能。
 今回は、3つの拠点を、http://js2007.js.com より接続させます。つまり、Linuxのコマンドで、
 # host js2007.js.com
と、打ち込むと、画像の様に3つのグローバルIPアドレスがレポートされることになります。
JavaScript呼び出しサーバーを分散させることによって、クライアント・サイド・プロセスであるJavaScript呼び出しが、DNSによって「もっとも接続し易いIPアドレスのWebサーバー」と通信してくれます。日本国内からの接続なら、XREAさんか自宅サーバーでしょうか。 海外のプロキシー経由等の場合なら、byethostが通信を担当するでしょう。
 今回は3つの拠点ですが、以下の調整は3つに限定しません。どこかのWebサーバーがメンテナンスなり、故障のトラブルで停止しても、他のサーバーが生きていれば必ず接続できますので、実際には緊急時のストレスは無くなり、メンテナンスは楽になります。


ドメイン名を手配します。

 今回は、キャンペーン中のXREAさんでドメイン名を取得しました。comで、年間¥790円。キャンペーンですから、終了もありえるのでしょう。まあ、安くなりましたね。XREAさんを選んだもう1つの理由とは、DNS機能です。後述しますが、理解しやすいですし、十分な機能です。Webメールもありますしね。
この行以上のXREAさんのリンクには、affiliateの要素があります。ご理解願います。この行以降のXREAさんへのリンクには何も加工してはおりません。ご注意ください。 是非、上の画像リンクより接続願います。
 ここでは解説の都合上、架空のドメイン名「 js.com 」を手配できたと仮定します。
js.comは、仮定の想定であって、実際の利用者とは全く関係はありません。ご理解願います。


ドメインネームサーバーに登録します。

01-1 まず、VALUE DOMAIN のHPより、ログインした後に、メニューをクリックして、「DNSレコード/URL転送の変更」を選択して、「変更できるドメイン」を選択し、「変更」ボタンを押しますか。
02-1 これからは、各WebサーバーのグローバルIPアドレスを正確に埋め込む必要があります。3台なら、3台の拠点のグローバルIPアドレスを調べてください。
Linuxなら、host コマンドで簡単に調べられます。例えば
host yahoo.co.jp
とすると、Yahoo!さんのサーバーのIPアドレスが得られますよね。同じように、あなたの Web Hosting の拠点を調べます。
03-1 1つの拠点に対して、2行づつ定義しましょう。
■1つ目は、http://js2007.js.com から呼び出されるIPアドレスです。
■2つ目は、サーバー個別指定用のユニークなアドレスです。ここでは、js2007a, js2007b, js2007c を指定して個別接続できるようにしています。
例えば、http://js2007.js.com は、どこに接続するかは不定です。ところが、http://js2007a.js.com では1番目の Web Hosting に必ず接続します。保存したなら、DNSネットワーク網に浸透するまで・・・・しばらく休憩ですね。筆者はLinuxでhostをsleepで永久ループさせて、アドレスがDNSから戻ってくるのを待っていたりました。(笑)

※ 左の画像はサンプルです。ご自分のIPアドレスに読み替えてください。
04-1 メニューをクリックして、「ネームサーバーの変更」を選択して、「変更できるドメイン」を選択し、「変更」ボタンを押しますか。
「ネームサーバー変更」リストに、折角だから、byethostDNSを指定しよう。
byethostDNSは、ns1.byet.org, ns2.byet.org, ns3.byet.org, ns4.byet.org, ns5.byet.org
 筆者のように安易に安直にbyet.orgのDNSを登録してみて、mxが影響する点が判明した。今では、byet.orgのDNSを設定していません。その代替えに、自宅での契約先のプロバイダーのDNSを登録しています。どうなることやら。。。


host コマンドでDNSの結果を調べます。

01-1 安全なリモート端末SSH通信?を利用しよう。XREA Web Hostingを申し込んで取得済みと想定します。
VALUE DOMAIN のHPより、ログインした後に、メニューをクリックして、「 ■サーバーアカウントの登録・管理・購入」を選択して、「変更できるサーバーアカウント」から任意の「サーバー設定」をクリックしよう。XREA.COMのメンテナンスページを表示する。
「管理メニュー」の「ホスト情報登録」をクリックする。そして、目的の「SSH登録」ボタンを押そう。あなたの端末のグローバルIPアドレスからの通信を許可してくれる。
02-1 XREA.COMの「管理メニュー」の「FTP設定」をクリックしますか。この情報をPutty?に登録する。
 SSH通信だから、秘密鍵と公開鍵を定義して、Putty?に登録すれば、XREAのパスワードに囚われない運用が可能ですが、最初は、FTPアカウント/FTPパスワードでログインしよう。
03-1 Putty?を利用して、XREA.COMにログインして、実際に、ドメイン名から、3つのWeb Hosting ServerのグローバルIPアドレスがレポートされることを確認しますか。

それぞれに(サブ)ドメイン登録を行います。


自宅サーバーの場合

 Linux + Apache を想定します。
httpd.conf ファイルに以下のデーターを追加し、Apacheを再起動します。
Alias指定は無くて良いです。2つのサブドメインに対して、同じDocumentRootを理解させています。これで、個別接続用の http://js2007b.js.com で接続確認が出切れば、正式利用の http://js2007.js.com は「大丈夫!」と言う事となります。
<VirtualHost *:80>
    ServerAdmin xxx@yahoo.co.jp
    DocumentRoot /opt/httpd/htdocs/js2007
    ServerName js2007.js.com
    ErrorLog logs/js2007.js.com-error_log
    CustomLog logs/js2007.js.com-access_log common
    Alias /images/ "/opt/httpd/htdocs/js2007/images/"
</VirtualHost>
<VirtualHost *:80>
    ServerAdmin xxx@yahoo.co.jp
    DocumentRoot /opt/httpd/htdocs/js2007
    ServerName js2007b.js.com
    ErrorLog logs/js2007.js.com-error_log
    CustomLog logs/js2007.js.com-access_log common
    Alias /images/ "/opt/httpd/htdocs/js2007/images/"
</VirtualHost>

XREAの場合

01-1 XREA.COMの「マイドメイン利用」の「ドメインウェブ」をクリックしますか。
 あくまでも蛇足ですが、Mainには指定しないほうが良いです。ファイルマネージャー(net2ftp)で、ファイルの「開く」が利用できなくなります。

 2つのサブドメインを登録します。1つのサブドメイン「 js2007.js.com 」には複数のグローバルIPアドレスを登録したわけですから、「強制」にクリックしておかないと、XREAの検査で駄目になります。
※ さて、個別接続用のサブドメインである「 js2007a.js.com 」の接続フォルダーをどうするかですね。 1つの解は、「転送先URL」でごまかす(暴言失礼!)ことでしょう。
ここでは、「転送先URL」を指定しないで、シンボリックリンクファイルを生成させる方法を考えます。
02-1 筆者が管理している HAMSTER SITE に、筆者が作成した「シンボリックリンクファイル単独生成ツール」を必要ならダウンロードしていただきたい。以後、本ツールを解説します。

※「 XOOPS専用シンボリックリンク自動作成/自動削除ツール 」を参照くださればと願います。
03-1 XREAサーバーの実際のファイルシステムの階層と、参照を許可された階層を知っておく必要があるますか。
サブドメイン「 http://js2007.js.com/ 」で参照される場所は「 /root/public_html/js2007.js.com/ 」であるし、
個別接続用のサブドメイン「 http://js2007a.js.com/ 」で参照される場所は「 /root/public_html/js2007a.js.com/ 」となります。
つまり、異なるフォルダーを作成し、それぞれは異なるフォルダーを参照することとなります。
そこで、片一方をシンボリックリンクファイルにしてしまおうと言う訳です。
/root/public_html/js2007a.js.com をシンボリックリンクファイルにして、実フォルダー /root/public_html/js2007.js.com/ を指し示すこととしましょう。
03-2 ダウンロードし、解凍すると2つのファイルが作成されます。「 mkSymLinkForRoot.php 」と「 dellinkfile.php 」です。両方ともに、/root/public_html/js2007.js.com/ にコピーします。そして、「 mkSymLinkForRoot.php 」をブラウザーで起動したところです。
03-3 実際のファイルシステムの階層と、許可された階層とは異なります。
/root/public_html/js2007.js.com/ とは、実際には /virtual/あなたが申請したXREAのID/public_html/js2007.js.com/ となります。ところが、絶対パスとなる /virtual/〜 は、利用を許可されていません。そこで、絶対パス指定は諦めて、相対パス指定でのシンボリックリンクファイルを生成させる必要があります。
配布している「 mkSymLinkForRoot.php 」は、絶対パス指定でも、相対パス指定でもシンボリックリンクファイルを生成できます。XREAの場合は、相対パス指定ですね。
恐れ入りますが、「 mkSymLinkForRoot.php 」を編集してください。 先頭部分の「 $virtualBase = '/virtual/あなたのXREAID/public_html/'; 」の「あなたのXREAID」を差し替えて保存してください。そして再度、閲覧すると左の画像のように相対指定モードとなります。

「作成するシンボリックファイル名」には、必ず「 ../ 」(ピリオド+ピリオド+スラッシュ)を付けて、解説上の例では「 js2007a.js.com 」となります。つまり、「 ../js2007a.js.com 」を入力します。「状況検査」ボタンをクリックします。
03-4 シンボリックリンクファイルを作成しようとする階層の全てのデーターを検査します。
シンボリックリンクファイルを作成できそうです。」と表示されれば、作成は可能ですが、上位フォルダーのパーミッションにご注意ください。「 public_html 」の書き込みを許可してください。そうしないと生成できません。「シンボリックリンク作成」ボタンを押します。
03-5 左の画像は、エラーの場合です。上位フォルダーのパーミッションを変更してください。
※ 尚、作業が終了しましたら、パーミッションを元に戻しておきましょう!
03-6 左の画像は、目出度く、シンボリックリンクファイルが生成されたことを表します。では、何故「作成できません!」と表示されているのか?! 済みません。仕様です。作成してから「状況検査」をしてしまっています。次回改訂時には、「作成した場合は検査をしない」ように修正しましょう。Version:0.01の仕様と言う事で、済みません。
03-7 それでは、XREAのファイルマネージャー「 net2ftp 」で確認してみましょう。
左の画像のようなレポートが出ていますか?
シンボリックリンクファイルをクリックしたらエラー無く、接続できましたでしょうか? 判明し易いような「オリジナル名称のフォルダーなりファイル」を作成しておけば、どこに接続したのかが理解し易いでしょう。
dellinkfile.phpは、シンボリックリンクファイルのみを削除するツールです。
「 dellinkfile.php 」をブラウザーで表示します。
usage: http://xxxxxxx/dellinkfile.php?dellinkfile=yyyyyyy... と表示されます。消したいシンボリックリンクファイルをGET変数「 dellinkfile 」に指定して再閲覧願います。今回の例では、
http://あなたのサイトURL/js2007.js.com/dellinkfile.php?dellinkfile=../js2007a.js.com
と手打ちしてください。
リンク先をレポートして、「消す」ボタンが現れます。「消す」ボタンを押せば、パーミッションに問題が無ければ・・・・消えます。

byethostの場合

01-1 ログインする。各サーバー毎にログインURLは異なります。申し込み時のメールは大切に保管してください。
02-1 ログインしたなら「 Manage Domains 」をクリックし、「 Domain Manager 」をクリックする。目的の2つのドメインを登録する。
運用ドメインの「 js2007.js.com 」と、個別接続チェック用の「 js2007c.js.com 」です。byethostの場合は、自動的にフォルダーが作成されます。 残念ながら byethost では、現行バージョンの当方のツールではシンボリックリンクを作成できません。と、言うか、何故かPHPを利用したシンボリックリンクの運用を禁止させています(phpinfoのレポートを見れば、symlinkの利用を禁止させていることが判ります)。よって、それぞれのフォルダーにファイルをコピーするしかなさそうです。(shを利用したcgiを作成すれば可能かも知れません。どなたかコメントを求めます。) う〜む、シンボリックリンクの生成をPHPで禁止させている byethost の戦略が、「容量オーバーになったら有料契約してね!」だとしたら・・・・・つまらんですね。(こんなことを夢想する筆者が、つまらんですね! ドキッツ ^^;)


同じ情報を全ての Web Hosting にアップロードします。

※ これは仕方の無いことです。FTPを利用したミラーリング・アップロードで同期を取るしか無さそうです。
 バックアップだと考えて、データーを変更した場合は、全てのサーバーのデーターも同時にアップロードして変更します。
■ ファイル「 index.php 」をそれぞれの Web Hosting に埋め込みますか。どこのサーバーに接続中かを判別できますね。
<?php	echo "<h2>".realpath("./")."</h2>" ?>


それぞれのURLでの接続を確認します。

※ ここで、Web Hosting 個別に接続できるURLを利用します。 接続テストを行うには、様々な地域(海外レベル)からの接続を行っていただきたい。 ちょっと出掛けて「インターネットカフェから接続してみるかい」レベルの話ではないです。
次の「メインURLでの利用を開始します。」で紹介したプロキシーサーバー経由で接続テストを行う。ABC順で言えば、ArgentinaからZimbabweと、世界各国より接続テストを行える。
試しに筆者が管理しているXOOPS「 ZenCart 」から、最新匿名プロキシーサイト情報の圧縮アーカイブファイルをダウンロードしていただきたい。 世界中の国別ソーティングされた「最新匿名プロキシーサーバー」リストが手に入る。詳しくは「利用できるプロキシーサーバーリストをメールで受信」で解説しています。


メインURLでの利用を開始します。

※ 筆者の記事である「匿名プロキシーを利用しましょうね。」を是非、思い出していただきたい。自分の会社、学校、自宅からの固定点からの接続チェックでは不備です。直近のDNSから得られるグローバルIPアドレスだけで「OK」と判断しないようにしていただきたいです。 海外なり遠くの友人達に接続テストを依頼するのも良し。(微笑)
筆者の場合は、「匿名プロキシーを利用しましょうね。」で解説しましたMultiProxyを利用して、今回作成した http://js2007.js.com なる複数のグローバルIPアドレスに応答するURLとの接続実験を行っています。一概には言えませんが、海外のプロキシーサーバー経由の場合は、 byethost に接続するように感じられますし、プロキシー経由ではなく、日本国内の某CATVプロバイダーを通じてダイレクトに接続すると、XREAさんに接続しますね。おいおい、自宅サーバーに接続しないなあ〜 寂し〜(笑) 自宅サーバーは『いざ鎌倉機』ですね。XREAさんがメンテナンス中で停止、buethostさんもメンテナンス中で停止が同時に起こった時の救世主ですかね。格好良いい〜(笑)


削除対象にならないようにメインコンテンツの作成は必須です!

※ 本記事を参考にして、みなさんは、ドメイン宣言可能な世界中の Free Web Hosting を追加し、構築されるかも知れません。その場合に特に注意していただきたい点とは、「削除対象条件」です。
1.母国語以外の言語での構築は削除対象となる場合があります。
2.データー保管庫としての運用が著しい場合も削除対象となります。
  「2」に該当しないかは十分に注意してください。本記事の運営にのみ特化した Free Web Hosting の使用となると、それは「データー保管庫」扱いだと疑惑を持たれても仕方が無いケースが起こるかも知れません。

※ メインコンテンツはしっかりと持つことが求められます。
どうしても不安なら、Free Web Hosting の管理者に判断を仰ぎ、その管理者からの返答を大切に保管しておいてください。 チクリで「不当なユーザーだ象!パオーン!!」と告発されると気分は落ち込みますからね。

メインコンテンツには、楽しい FLASH 動画・画像アルバムを利用しますか。(*^^*)

 是非、筆者が作成しました無料、広告一切無し、マスク無限登録可能、リンクボタン配置可能、360度無限回転保証のパノラマ画像表示機能付加可能(ズーム可能)、横方向長尺画像表示付加可能(ズーム可能)、記憶型の自由な音源ボリューム登録可能な「パラメトリックFLASHアルバム」をご利用くださいませ。(笑)


 最上段に移動 
2008年03月08日(土) 09:22:06 Modified by mmj_aos




スマートフォン版で見る

×

この広告は60日間更新がないwikiに表示されております。