Apache Traffic Serverの続き。
細かい設定については、別のエントリーにて。
#実はまだ、ちゃんと動かせていない、という事情もあたりする・・・。
Apache Traffic Server 〜とりあえずインストール - Soukaku's HENA-CHOKO Blog
インストールが終わったのはいいんだけど、ちゃんと動いてくれなくて四苦八苦。
「とりあえず、基本に戻ろう」ということで、パッケージのインストールと同時にインストールされるドキュメントを漁ってみたら/usr/share/doc/trafficserver/CONFIGURATION.Debian.gz
というのがあって、改めて読み直してみたら、色々と設定ファイルに手を入れないとProxyとして動いてくれないらしい。
まず、いじらないといけないのは、/etc/default/trafficserver
の中の
TC_START=no
の"no
"を"yes
"に変更しないと、起動スクリプトを叩いてもTraffic Server関連のデーモンが起動しません。
で、書き換えてTraffic Serverを起動させてみると・・・。
root@debian:~# /etc/init.d/trafficserver start
root@debian:~# ps axf | grep traffic
30544 pts/1 S+ 0:00 \_ grep traffic
30532 ? Ss 0:00 /usr/bin/traffic_cop
一応、traffic_cop
というデーモンは起動しているけど、
[May 2 20:18:18.312] Manager {140219748378400} FATAL: [LocalManager::initCCom] Unable to find network interface wlan0. Exiting...
[May 2 20:18:18.313] Manager {140219748378400} FATAL: (last system error 2: No such file or directory)
[May 2 20:18:18.313] Manager {140219748378400} NOTE: [LocalManager::mgmtShutdown] Executing shutdown request.
[May 2 20:18:18.313] Manager {140219748378400} NOTE: [LocalManager::processShutdown] Executing process shutdown request.
という感じで、/var/log/trafficserver/traffic.out
にエラーが吐かれているので、まだ設定が足りない模様。
ログ中に"Unable to find network interface wlan0.
"とあるので、どうもネットワークインタフェースに関する設定がおかしいらしいことがわかるので、Traffic Serverの設定ファイルである/etc/trafficserver/records.config
を"wlan0
"をキーワードにgrepしてみる。
root@debian:~# grep wlan0 /etc/trafficserver/records.config
CONFIG proxy.config.cluster.ethernet_interface STRING wlan0
ビンゴ!ということで、まずこのパラメータをvi
などで修正。
#下の作業ログでは、perlで書き換えてます。
root@debian:~# perl -pi.bak -e 's/wlan0/eth0/' /etc/trafficserver/records.config
root@debian:~# diff -u /etc/trafficserver/records.config.bak /etc/trafficserver/records.config
--- /etc/trafficserver/records.config.bak 2011-05-02 20:15:58.000000000 +0900
+++ /etc/trafficserver/records.config 2011-05-02 20:26:51.000000000 +0900
@@ -307,7 +307,7 @@
#
##############################################################################
CONFIG proxy.config.cluster.cluster_port INT 8086
-CONFIG proxy.config.cluster.ethernet_interface STRING wlan0
+CONFIG proxy.config.cluster.ethernet_interface STRING eth0
##############################################################################
#
# Cache
起動スクリプトでTraffic Serverを再起動して、起動しているプロセスを確認してみると・・・。
root@debian:~# /etc/init.d/trafficserver restart
Restarting Apache Traffic Server: trafficserver\n.
root@debian:~# ps axf | grep traffic
30691 pts/1 S+ 0:00 \_ grep traffic
30657 ? Ss 0:00 /usr/bin/traffic_cop
30659 ? Ssl 0:00 \_ /usr/bin/traffic_manager
30669 ? Sl 0:00 \_ /usr/bin/traffic_server -M -A,8:X
"traffic_cop
"、"traffic_manager
"、"traffic_server
"の3つのデーモンが起動して、やっと動作するようになりました。
で、ここまで動けばちゃんとプロキシとして動いているように見えますが、ローカルのproxyを参照するように設定したwget
でYahoo!にアクセスしてみると
root@debian:~# wget http://www.yahoo.co.jp/
--2011-05-02 20:34:17-- http://www.yahoo.co.jp/
127.0.0.1:8080 に接続しています... 接続しました。
Proxy による接続要求を送信しました、応答を待っています... 404 Not Found
2011-05-02 20:34:17 エラー 404: Not Found。
となって、正しくアクセス出来ていないという状況。
前のエントリーでインストールまでしか書かなかったのは、この状態が続いていたためだったりした訳ですが、これを解消するヒントは上の方に書いたとおり/usr/share/doc/trafficserver/CONFIGURATION.Debian.gz
の中身にあったということで、以下がそのポイントとなります。
Traffic Serverは、直接/etc/trafficserver/records.config
をエディタで編集してもいいのだけど、以下の設定変更は"traffic_line
"コマンドを利用して設定変更を行っていきます。
"traffic_line
"コマンドは"traffic_manager
"が起動していないと使えないので、"proxy.config.cluster.ethernet_interface
"はエディタなどで変更しておかないといけない、ということになるわけ。
/usr/share/doc/trafficserver/CONFIGURATION.Debian.gz
を眺めていて、特に気になったのが
* Proxy server can basically act in two modes: As forward proxy and as a rever-
se proxy. Traffic Servers primary purpose is to act as reverse proxy (e.g.
different to Squid). Nonetheless you can Traffic Server still instruct to act
as forward proxy as well. If you know what you are doing, you need to set
CONFIG proxy.config.url_remap.remap_required INT 0
for that purpose.
という記述。
Traffice Serverをリバースプロキシとして動かすための設定らしいのだけど、「このパラメータを変えないと、フォワードプロキシとして動かないヨ!(意訳)」と書いてあるようなので、実際の設定を確認してみたら・・・。
root@debian:~# traffic_line -r proxy.config.url_remap.remap_required
1
ということで、インストール直後はリバースプロキシで動いてる・・・。orz
早速、"proxy.config.url_remap.remap_required
"を書き換えて設定を反映。
root@debian:~# traffic_line -s proxy.config.url_remap.remap_required -v 0
root@debian:~# traffic_line -x
で、wget
でテスト。
root@debian:~# wget http://www.yahoo.co.jp/
--2011-05-02 20:53:10-- http://www.yahoo.co.jp/
127.0.0.1:8080 に接続しています... 接続しました。
Proxy による接続要求を送信しました、応答を待っています... 200 OK
長さ: 特定できません [text/html]
`index.html' に保存中
[ <=> ] 25,644 --.-K/s 時間 0.09s
2011-05-02 20:53:11 (276 KB/s) - `index.html' へ保存終了 [25644]
ということで、これでプロキシとして動作するようになりました。
おそらく、ソースからインストールしたTraffic Serverでもリバースプロキシが、デフォルトで設定された状態だと思われるので、どうしても動いてくれないなー、というときは"proxy.config.url_remap.remap_required
"の値を確認してみるといいかもしれません。
で、ここまでがホントに最低限の設定。実際に運用に供するにはログに関する設定が足りなかったりするので、その辺については別エントリーにて。
[追記 - 2011/5/3 6:03 ]
FAQページを眺めていたら、まさにドンピシャな"How do I enable forward proxy mode?"という項目が・・・。
そこには次の二つのパラメータの値を"0"とするように書いてあるので、
# traffic_line -s proxy.config.reverse_proxy.enabled -v 0
# traffic_line -s proxy.config.url_remap.remap_required -v 0
# traffic_line -x
とすれば、無事フォワードプロキシとして動作する様になる、と。
#やっぱり、ちゃんとドキュメント類は当たってみるもんですな。
トラックバック(1)
Apache のログとか眺めてると、 Apache Traffic Server... 続きを読む
コメントする