Apache Traffic Server

提供: FreeBSD入門
2015年9月27日 (日) 19:11時点におけるDaemon (トーク | 投稿記録)による版 (ログ)

(差分) ←前の版 | 最新版 (差分) | 次の版→ (差分)
移動: 案内検索
スポンサーリンク

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

records.config
設定項目 説明
proxy.config.cache.ram_cache.size メモリのキャッシュサイズ。デフォルトは自動(-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%
 
長いので以下、切り捨て

関連項目




スポンサーリンク