作成開始 : 平成17年06月19日(日) 最終更新日 : 平成17年07月02日(土)
Delegateでリバースプロキシを試す!
このドキュメントもDynaBook上で動いているDelegateを経由しています。(平成17年06月18日[土]から〜07月01日[金]まで)
例によって経験則なので、このままやっても動かないこともあるかもしれません。(このやり方でよかったのかなぁー?)
PC-9821v7のFreeBSD上で軽快にリバースプロキシしてましたが、ファンの音が少しうるさいのと電気量節約(たぶん)のためノートPCにDelegateを搭載しました。
はじめは、DynaBookにFreeBSDインストールして使おうかとも思いましたが、せっかく苦労してWindowsNTのインストールと周辺機器の追加をしたので、そのまま
Win32用のDelegateを使うことにしました。(このPCも酷使されているなぁー)
これによって、PC-9821v7は実験用PCとして普段は電源OFFで待機です。
1.構築したPCと構成概要
●Delegateインストール、稼動PC DynaBook 220SC CPU : 133MHz MEM : 48Mbyte HDD : 1.33Gbyte IISがポート81で動いています。(DeleGateがポート80のため) こんな低スペックでも機能限定すればかなり軽快に動作します。 ![]() |
上記のように複数台のサーバー機を公開します。
2.Delegateの紹介
Delegate Home Pageを参照ください。(英語のサイトです)
日本語で見たい場合は検索エンジンで検索すればたーくさんヒットします。
3.(特に)参考にしたサイト
ごめんなさい検索しまくりで一通り拝見させていただきました。
この後、微調整などしたいと思いますので、その都度リンクいたします。
●日本語マニュアル
4.配布ファイルの準備
http://www.delegate.org/ からダウンロードできます。
dg8_11_4.zip (1,061,355byte ->1.04Mbyte)をダウンロードしました。Win32用です。
展開すると次のようなファイル・フォルダが出来ます。
※C:\tmpに解凍した場合
C:\
|
+----tmp
|
+--dg8_11_4・・・・・・・・・・・・・・・dg8_11_4.exe、CHANGES(英語)、COPYRIGHT(英語)、README(英語)
|
+doc・・・・・・・・・・・・・Manual.htm(英語)、tutor-en.htm(英語)、tutor_jp.htm(日本語)
5.インストールと設定
・Windowsクライアント上で取得したファイルを展開し、エクスプローラでサーバーの共有フォルダにコピーします。
私は、C:\delegate を作成してそこにコピーしました。
そして、dg8_11_4.exe を delegated としてリネームしました。これは、バージョンアップ時の作業を容易にするためです。
・次に、delegate用のキャッシュディレクトリとログディレクトリを作成します。このディレクトリはなくても動作しますが、作っておかないとキャッシュやログを作成してくれません。
私は C:\delegateの下に次のように作成しました。
キャッシュ用のディレクトリ cache を作成。
ログ用ディレクトリ log を作成。
・起動時に実行すべき内容を書いた cfg ファイルを作成します。
私はC:\delegate に作成しました。
[解説]
1: -P80 ※Delegateが受け入れるポート番号です。ポート:80で稼動します。
2: MANAGER=master@takaq1.plala.jp ※管理者のメールアドレスです。
3: DGROOT=C:/delegate ※Delegateのルートフォルダです。
4: SERVER=http ※HTTPサーバー・モードで動きます。
5: RELIABLE=* ※全てのクライアントからのアクセスを受け入れます。
6: PERMIT="*:*:*" ※全てのプロトコル、ホスト、クライアントのアクセスを許可します。
7: CONNECT=c,d:*:*:* ※キャッシュがあればキャッシュからなければ直接接続します。
8: RESOLV=file:C:/Winnt/system32/drivers/etc/hosts,dns
※最初これを書かないで動かしたら、目的のサーバーへ「not REACHABLE」で接続できませんでした。
こんなエラーです。
Forbidden by Delegate
Forbidden by Delegate on 'dynabook.takaq.jp:80'.
Tried from takaq1.plala.jp : 14330 to http://takaq1.plala.jp:80.
Reason: 'takaq1.plala.jp' not REACHABLE
(hosts にはキチンと各サーバーのIPアドレスと名前を書いていました)
※でも、MOUNTにIPアドレスでURL書いたら接続できたので、名前解決ができていないようでした。
※hosts には 192.168.2.5 takaq1.plala.jp などと書いています。
※これ解決に随分時間かかりました。もう、日曜日の朝になってしまいました。はは!
※平成17年06月21日(火) dns を追加→訪問者のドメイン取得のため。
(これ無いと、訪問者はIPアドレスのみログ出力します)
後は大体お分かりですね。
9: MOUNT=/* http://takaq1.plala.jp:80/* # 9821Xc13 & FreeBSD
10: REACHABLE=192.168.2.5 # 9821Xc13 Only
11: MOUNT=/DynaBook/* http://DynaBook.takaq.jp:81/* # DynaBook & Windows NT Server4.0
12: REACHABLE=192.168.2.9
13: MOUNT=/9821nemail/* http://9821nemail.takaq.jp:80/* # PC-9821Ne & Windows 95
14: REACHABLE=192.168.2.8
15: MOUNT=/FMV/* http://FMV.takaq.jp:80/* # FMV & Windows 2000
16: REACHABLE=192.168.2.13
17: CACHE=do
18: CACHEDIR=C:/delegate/cache
19: LOGDIR=C:/delegate/log
20: EXPIRE=2d # cache Rinit
21: CRON="0 2 * * * -expire 2d"
22: CACHEFILE='$[server:%P]/$[hash:%H]/$[server:%L/%p]'
23: LOGFILE='' # no log file
24: #LOGFILE='${LOGDIR}/${PORT}[date+%d]' # log file
25: PROTOLOG='${LOGDIR}/${PORT}/[date+%d].${PROTO}' # httpd log
26: #ACTDIR=/var/run # RunID
ログとかキャッシュとかもチャンと出来ていました。これでしばらく様子見たいと思います。
しかし、どうも低スペックなのに WindowsNT + IIS 動いているから PC-9821v7 より少し遅いみたいです。
特に、しばらくアクセスが無い時の最初の応答は一呼吸かかるようです。
複数アクセスがある時はどうかな?
あまり遅かったりしたら中古屋で安〜いノートPC買おうかな!!!
上記ができたら、まずはデバックモードで動かしてみます。 コマンドプロンプトからカレントを C:\delegate にして・・・・・
delegated -v +=proxy.cfg です。(停止は Ctrl + C です。)
これで、画面にロギングしながら調整すればいいです。
そしたら、クライアントPCから動作確認をします。
私のルータはLAN内から直接ドメイン名を入力するとルータの認証画面が表示されてしまいます。
なので、WINDOWS\system32\drivers\etc\hosts に次の一行を追加しました。(WindowsXPの場合)
192.168.2.9 takaq1.plala.jp # Delegate PCのアドレス
そして、いよいよブラウザからの確認です。
http://takaq1.plala.jp/ → PC-9821Xc13のドキュメントルートを表示しました。
http://takaq1.plala.jp/DynaBook/ → DynaBookのドキュメントルートを表示しました。
http://takaq1.plala.jp/9821nemail/ → 9821nemailのドキュメントルートを表示しました。
http://takaq1.plala.jp/FMV/ → FMVlのドキュメントルートを表示しました。
そしたら、まぁこれでOKでしょうから せっかくなのでWindowsのサービス登録をしときましょう。
これまた、コマンドプロンプトでカレント C:\delegate にし次のコマンドを実行します。
delegated +=proxy.cfg
すると、ADMINのメールアドレスを聞かれ自動起動にしますか?を英語で聞かれます。
それぞれ入力し、コントロールパネル → サービス を確認したら「delegated -P80」でサービス名が登録されていました。
そして、既に動いていました。
※サービス登録からの削除は「delegated -P80」です。やっぱりADMINのメールアドレスと削除していいですかぁー?と聞かれました。
・インターネットからの確認
ルータのポートマッピングでポート:80を192.168.2.9に向かうようにしました。
ファイヤーウォールの設定でポート:80を192.168.2.9に向かうようにしました。
クライアントPCのブラウザで外部プロキシを使うようにしました。(CyberSyndrome - The Proxy Search Engine参照)
そして、再度ブラウザからのテストです。
http://takaq1.plala.jp/ → PC-9821Xc13のドキュメントルートを表示しました。
http://takaq1.plala.jp/DynaBook/ → DynaBookのドキュメントルートを表示しました。
http://takaq1.plala.jp/9821nemail/ → 9821nemailのドキュメントルートを表示しました。
http://takaq1.plala.jp/FMVl/ → FMVlのドキュメントルートを表示しました。
6.付記・・・・・・ってFreeBSDのページと同じです。
少し設定、動作確認に時間かかりましたが、うまく動いてくれています。
少しずつマニュアル読んで微調整していきたいと思います。
直接、各Webサーバーへのアクセスが抑止できましたし、キャッシュのおかげで各Webサーバーの負荷が小さくなりました。
難点としては、各サーバーでアクセス集計のCGI置いていますが、接続してくる相手のドメインを取得できない(つーか、全て192.168.2.9から来るので・・・)ので、接続ホストの集計が全て *takaq.jp になってしまうことでしょうか。
それと、訪問者のIPアドレスで現在アクセス数のカウントができない。
CGIなどで訪問者のIPアドレスによるリロード時のカウント抑制や設定URLとブラウザのURLで直リンク禁止なんかしている場合はおかしくなります。ですので、スクリプトをチビッといじりました。
超低スペックなので、やっぱり三日に一度リブート要るようです。(スワップが一杯になっちゃいます:メモリ欲しい)
・各サーバーへアクセス
DynaBookへ9821nemailへ・・・・・・・・・・・・毎週金曜日 21:00 〜 07:00 動いております。
FMVへ(平成17年05月18日[水]追加)・・・・・takaqが仕事に行っている間動いております。
【戻る】