Apache Traffic Serverを試してみる
今回はApache Traffic Server を試してみることにします。
調べながら書いているので、内容はご容赦を。
インストール
READMEを見る限り、必要なソフトは以下の模様。
- Fedora 11,12:
- Ubuntu 8.04,8.10,9.10
- autoconf
- automake
- libtool
- g++
- libssl-dev
- tcl-dev
- expat
- libexpat-dev
- libsqlite3-dev (or optionally, libdb-dev)
- libpcre3-dev
すぐ使えるFedoraの環境が手元になかったので、今回もCentOSで挑戦。
さて、インストールです。
まずはインストール先を指定してconfigure
# ./configure --prefix=/usr/local/traffic_server
すると、
configure: error: in `/usr/local/src/trafficserver-2.0.0': configure: error: check for sqlite3 failed. Have you installed sqlite3-devel? See `config.log' for more details.
と、怒られる。
が、sqliteは入っていました。
仕方なく、
--without-sqlite3 --with-libdb
として再挑戦。
configure: error: in `/usr/local/src/trafficserver-2.0.0': configure: error: check for pcre failed. Have you installed pcre-devel? See `config.log' for more details.
READMEには書いてありませんが、pcre-develも必要なようです。
結局行った手順はこんな感じです。
# bzcat trafficserver-2.0.0.tar.bz2 | tar -xv # cd trafficserver-2.0.0 # ./configure --prefix=/usr/local/traffic_server --without-sqlite3 --with-libdb # make # make install
動かしてみる
起動はこんな感じです。
# ./trafficserver start Starting Apache Traffic Server: [ OK ]
以下のプロセスが起動します。
traffic_cop
traffic_manager
traffic_server
デフォルトでは8080, 8083, 8084, 8088番ポートを使用するようです。
停止はこんな感じです。
# ./trafficserver stop Stopping traffic_cop: [ OK ] Stopping traffic_manager: [ OK ] Stopping traffic_server: [ OK ]
各種操作は「traffic_line」に引数を与えるようです。
試しに -h の結果。
Usage: ./traffic_line [--SWITCH [ARG]] switch__________________type__default___description -q, --query_deadhosts on false Query congested sites -p, --socket_path str var/tra.. Socket Path -r, --read_var str (null) Read Variable -s, --set_var str (null) Set Variable (requires -v option) -v, --value str (null) Set Value (used with -s option) -h, --help Help -x, --reread_config on false Reread Config Files -M, --restart_cluster on false Restart traffic_manager (cluster wide) -L, --restart_local on false Restart traffic_manager (local node) -S, --shutdown on false Shutdown traffic_server (local node) -U, --startup on false Start traffic_server (local node) -B, --bounce_cluster on false Bounce traffic_server (cluster wide) -b, --bounce_local on false Bounce local traffic_server -C, --clear_cluster on false Clear Statistics (cluster wide) -c, --clear_node on false Clear Statistics (local node) -V, --version tog false Print Version Id
設定してみる
フォワードプロキシを設定してみる
以下を参考にしてやってみます。
Traffic Serverホーム直下の「etc/trafficserver」ディレクトリ配下に「record.config」ファイルがありますが、
この中で、「proxy.config.admin.autoconf_port」にPACファイル配布時に使うポートが指定されています(デフォルト8083)
全てをTraffic Serverに向くように、PACファイルを作ります。
function FindProxyForURL(url, host) { return "PROXY xxx.xxx.xxx.xxx:8080;" + "DIRECT"; }
こいつをTraffic Serverホーム直下のetcディレクトリ配下に置きます。
ブラウザのプロキシを「http://xxx.xxx.xxx.xxx:8080」
自動構成スクリプトを「http://xxx.xxx.xxx.xxx:8083/proxy.pac」
として、アクセスしたところ、Webアクセスが可能になりました。
こんな感じでいいのかな…。
#最初は応答が帰ってくるまで時間がかかったので、
#恐らくキャッシングをしているのでしょう。。
リバースプロキシを設定してみる
こちらも以下を見ながら。
Traffic Serverホーム直下の「etc/trafficserver」ディレクトリ配下に「record.config」ファイルがありますが、
「proxy.config.reverse_proxy.enabled」が1ならリバースプロキシが有効との事。
同じ場所にある「remap.config」に以下の一行を追加して、「./traffic_line -x」。
reverse_map http://xxx.xxx.xxx.xxx:8080 http://xxx.xxx.xxx.xxx:80
同じホストにApacheをインストールして、起動させておきました。
ブラウザから「http://xxx.xxx.xxx.xxx:8080」にアクセスしたところ、
Traffic Server経由でApacheにアクセス出来ていることが確認できました。
一旦動きましたが、ログ関連の設定をどうやるのか調べなくては。。
まだ先は長いですが、また使ってみようと思います。
今日はこんなところで。