Apache Traffic Server
Apache Traffic Server (ATS, Traffic Server)とは、Yahoo!Inc が開発したキャッシュプロキシサーバをOSS化したソフトウェアです。
読み方
- Apache Traffic Server
- あぱっち とらふぃっく さーば
- ATS
- えーてぃーえす
- TS
- てぃーえす、とらふぃっくさーばー
目次
概要
ATSは、20万行以上の C++のコードがあります。
Apache Traffic Serverの主な機能は、以下のとおりです。 - キャッシュ機能 - セッション管理 - ロードバランシング - 認証 - ルーティング - リクエストのフィルタリング
インストール
FreeBSDにインストールする場合
ports コレクションからインストールする場合
cd /usr/ports/www/trafficserver sudo make install clean
pkgコマンドでインストールする場合
sudo pkg install trafficserver
portinstallコマンドでインストールする場合
sudo portinstall /usr/ports/www/trafficserver
ディレクトリが存在しないと動かなかったので、手動で作成します。
sudo mkdir -p /usr/local/var/log/trafficserver sudo mkdir -p /usr/local/var/trafficserver
設定
設定ファイル
% ls /usr/local/etc/trafficserver/ ae_ua.config plugin.config.default ae_ua.config.default plugin.db body_factory/ plugin.db.default cache.config records.config cache.config.default records.config.default cluster.config remap.config cluster.config.default remap.config.default congestion.config socks.config congestion.config.default socks.config.default hosting.config splitdns.config hosting.config.default splitdns.config.default icp.config ssl_multicert.config icp.config.default ssl_multicert.config.default ip_allow.config stats.config.xml ip_allow.config.default stats.config.xml.default log_hosts.config storage.config log_hosts.config.default storage.config.default logs_xml.config trafficserver-release logs_xml.config.default update.config mgr.cnf update.config.default mgr.cnf.default vaddrs.config parent.config vaddrs.config.default parent.config.default volume.config plugin.config volume.config.default
remap.config
リバースプロキシの設定です。
8080番ポートで受けて、80にプロキシする例です。
map http://192.168.0.2:8080/ http://192.168.0.2/ reverse_map http://192.168.0.2:8080/ http://192.168.0.2/
records.config
<`2`>設定項目 | <`3`>説明 |
---|---|
<`4`>proxy.config.cache.ram_cache.size | <`5`>メモリのキャッシュサイズ。デフォルトは自動(-1)でGBのディスクキャッシュに対して約10MBのメモリのキャッシュを持つ。固定値の値を設定でき、20GBなら21474836480を設定します。 |
キャッシュの設定
キャッシュの設定は、 cache.config で行います。 キャッシュの保存先は、 storage.confi で設定します。 /var/log/var/trafficserver にファイルが置かれます。 cache.db にコンテンツのキャッシュが保存されます。
ログ
- squid形式のログが出せます
records.config の squid に関する設定には、以下の項目があります。
CONFIG proxy.config.log.squid_log_enabled INT 1 CONFIG proxy.config.log.squid_log_is_ascii INT 0 CONFIG proxy.config.log.squid_log_name STRING squid CONFIG proxy.config.log.squid_log_header STRING NULL
アクセスコントロール
設定ファイル ip_allow.config でアクセスコントロールを設定します。
# ip_allow.config # # Rules: # src_ip=<range of IP addresses> action=<action> [method=<list of methods separated by '|'>] # # Actions: ip_allow, ip_deny # # Multiple method keywords can be specified (method=GET method=HEAD), or # multiple methods can be separated by an '|' (method=GET|HEAD). The method # keyword is optional and it is defaulted to ALL. # Available methods: ALL, GET, CONNECT, DELETE, HEAD, ICP_QUERY, OPTIONS, # POST, PURGE, PUT, TRACE, PUSH # # Rules are applied in the order listed starting from the top. # That means you generally want to append your rules after the ones listed here. # # Allow anything on localhost (this is the default configuration based on the # depricated CONFIG proxy.config.http.quick_filter.mask INT 0x482) src_ip=127.0.0.1 action=ip_allow method=ALL src_ip=::1 action=ip_allow method=ALL # Deny PURGE, DELETE, and PUSH for all (this implies allow other methods for all) src_ip=0.0.0.0-255.255.255.255 action=ip_deny method=PUSH|PURGE|DELETE src_ip=::-ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff action=ip_deny method=PUSH|PURGE|DELETE
ATSのコントロール
起動
sudo /usr/local/etc/rc.d/trafficserver start
停止
sudo /usr/local/etc/rc.d/trafficserver stop
再起動
sudo /usr/local/etc/rc.d/trafficserver restart
ステータス
sudo /usr/local/etc/rc.d/trafficserver status
コマンドの終了を待つ
sudo /usr/local/etc/rc.d/trafficserver poll
サービスが有効か確認する
サービスが有効な場合は、0、そうでなければ、1を返します。コマンドは、何も表示しません。
sudo /usr/local/etc/rc.d/trafficserver enabled
rc.confの設定を表示します
サービスの制御に使われるrc.conf変数を表示します。
sudo /usr/local/etc/rc.d/trafficserver rcvar
使い方
/usr/local/bin/traffic_manager /usr/local/bin/traffic_server /usr/local/bin/traffic_sac /usr/local/bin/traffic_logstats /usr/local/bin/traffic_logcat
traffic_server
# traffic_server -h [TrafficServer] using root directory '/usr/local' Usage: traffic_server [--SWITCH [ARG]] switch__________________type__default___description -n, --net_threads int 2 Number of Net Threads -Z, --cluster_threads int 1 Number of Cluster Threads -U, --udp_threads int 0 Number of UDP Threads -a, --accept_thread tog false Use an Accept Thread -b, --accept_till_done tog true Accept Till Done -p, --httpport str (null) Port descriptor for HTTP Accept -P, --cluster_port int 0 Cluster Port Number -o, --dprintf_level int 0 Debug output level -V, --version tog false Print Version String -T, --debug_tags str (null) Vertical-bar-separated Debug Tags -B, --action_tags str (null) Vertical-bar-separated Behavior Tags -i, --interval int 0 Statistics Interval -M, --remote_management tog false Remote Management -d, --management_dir str /usr/lo.. Management Directory -C, --command str (null) Maintenance Command to Execute -k, --clear_hostdb on false Clear HostDB on Startup -K, --clear_cache on false Clear Cache on Startup - , --accept_mss int 0 MSS for client connections -t, --poll_timeout int 10 poll timeout in milliseconds -h, --help HELP!
traffic_line
traffic_lineは、Traffic Serverの設定の参照や変更を行うコマンドです。
Usage: traffic_line [--SWITCH [ARG]] switch__________________type__default___description -q, --query_deadhosts on false Query congested sites -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) -Z, --zero_cluster str (null) Zero Specific Statistic (cluster wide) -z, --zero_node str (null) Zero Specific Statistic (local node) -V, --version tog false Print Version Id
設定項目を確認する方法は、以下のとおりです。
traffic_line -r var
設定の内容を変更するコマンドは、以下の通りです。
traffic_line -s var -v value
設定変更を反映するには、以下のコマンドを実行します。
traffic_line -x
ただし、いくつかの設定は、traffic server を再起動する必要があります。
traffic_logstats
traffic_logstats を使うとATSの統計が見れます。
# traffic_logstats -h Usage: traffic_logstats [-f logfile] [-o origin[,...]] [-O originfile] [-m minhits] [-inshv] switch__________________type__default___description -h, --help tog true Give this help -f, --log_file str (null) Specific logfile to parse -o, --origin_list str (null) Only show stats for listed Origins -O, --origin_file str (null) File listing Origins to show -M, --max_orgins int 0 Max number of Origins to show -u, --urls int 0 Produce JSON stats for URLs, argument is LRU size -U, --show_urls int 0 Only show max this number of URLs -A, --as_object tog false Produce URL stats as a JSON object instead of array -i, --incremental tog false Incremental log parsing -S, --statetag str (null) Name of the state file to use -t, --tail int 0 Parse the last <sec> seconds of log -s, --summary tog false Only produce the summary -j, --json tog false Produce JSON formatted output -c, --cgi tog false Produce HTTP headers suitable as a CGI -m, --min_hits i64 0 Minimum total hits for an Origin -a, --max_age int 0 Max age for log entries to be considered -l, --line_len int 78 Output line length -T, --debug_tags str (null) Colon-Separated Debug Tags -V, --version tog false Print Version Id
以下は例です。トラフィックのデータはありません。
# traffic_logstats -s Totals (all Origins combined) Request Result Count Percent Bytes Percent ------------------------------------------------------------------------------ Cache hit 0 nan% 0.00KB nan% Cache hit IMS 0 nan% 0.00KB nan% Cache hit refresh 0 nan% 0.00KB nan% Cache hit other 0 nan% 0.00KB nan% Cache hit total 0 nan% 0.00KB nan% Cache miss 0 nan% 0.00KB nan% Cache miss IMS 0 nan% 0.00KB nan% Cache miss refresh 0 nan% 0.00KB nan% Cache miss other 0 nan% 0.00KB nan% Cache miss total 0 nan% 0.00KB nan% Client aborted 0 nan% 0.00KB nan% Connect failed 0 nan% 0.00KB nan% Invalid request 0 nan% 0.00KB nan% Unknown error(99) 0 nan% 0.00KB nan% Other errors 0 nan% 0.00KB nan% Errors total 0 nan% 0.00KB nan% .............................................................................. Total requests 0 nan% 0.00KB nan% HTTP return codes Count Percent Bytes Percent ------------------------------------------------------------------------------ 100 Continue 0 nan% 0.00KB nan% 200 OK 0 nan% 0.00KB nan% 201 Created 0 nan% 0.00KB nan% 202 Accepted 0 nan% 0.00KB nan% 203 Non-Authoritative Info 0 nan% 0.00KB nan% 204 No content 0 nan% 0.00KB nan% 205 Reset Content 0 nan% 0.00KB nan% 206 Partial content 0 nan% 0.00KB nan% 2xx Total 0 nan% 0.00KB nan% 300 Multiple Choices 0 nan% 0.00KB nan% 301 Moved permanently 0 nan% 0.00KB nan% 302 Found 0 nan% 0.00KB nan% 303 See Other 0 nan% 0.00KB nan% 304 Not modified 0 nan% 0.00KB nan% 305 Use Proxy 0 nan% 0.00KB nan% 307 Temporary Redirect 0 nan% 0.00KB nan% 3xx Total 0 nan% 0.00KB nan% 400 Bad request 0 nan% 0.00KB nan% 401 Unauthorized 0 nan% 0.00KB nan% 402 Payment Required 0 nan% 0.00KB nan% 403 Forbidden 0 nan% 0.00KB nan% 404 Not found 0 nan% 0.00KB nan% 長いので以下、切り捨て
関連項目
ツイート