前書き
Apache Traffic Serverは、非常に低いレイテンシを維持しながら、大量の同時リクエストを処理できる拡張性の高いキャッシングプロキシサーバーです。 VarnishやSquidなどの他の一般的なプロキシサーバーと比較すると、通常、消費するメモリが少なく、応答が速くなります。 また、最新のマルチコアプロセッサを最大限に活用するように設計されています。 要件に応じて、リバースプロキシまたはフォワードプロキシとして使用できます。
このチュートリアルでは、Apache Traffic ServerをUbuntu 14.04にインストールし、キャッシュリバースプロキシとして動作するように構成する方法について説明します。
前提条件
このチュートリアルを実行するには、次のものが必要です。
-
Ubuntu 14.04ドロップレット1つ
-
https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-14-04 [非ルートsudoユーザー]
-
少なくとも1 GBのhttps://www.digitalocean.com/community/tutorials/how-to-add-swap-on-ubuntu-14-04 [スワップスペース]
ステップ1-Traffic Serverのインストール
Traffic ServerはUbuntu 14.04のデフォルトリポジトリで利用できるため、 `+ apt-get +`を使用してインストールできます。 更新する前に、必ずパッケージインデックスファイルを更新してください。
sudo apt-get update && sudo apt-get install trafficserver
Traffic Serverはデフォルトでポート8080でリッスンします。 ブラウザを使用して、 `+ http://:8080 / +`にアクセスできます。 ただし、まだ設定していないため、エラーが表示されます。
ステップ2-Webサーバーのインストール
定義上、プロキシサーバーは外部ユーザーとWebサーバー間の仲介者として機能します。 したがって、Traffic Serverの設定を開始する前に、マシンにApache HTTP ServerなどのWebサーバーをインストールする必要があります。
`+ apt-get`を使用してApacheをインストールして起動します。
sudo apt-get install apache2
これで、ブラウザを使用して「+ http:/// +」にアクセスして、Apacheのウェルカムページを表示できます。
手順3-Webサーバーへのリモートアクセスを無効にする
Apacheは、デフォルトですべてのネットワークインターフェイスでの接続を受け入れます。 ループバックインターフェイスでのみ接続を受け入れるように構成することにより、リモートユーザーがアクセスできないようにすることができます。
`+ nano `またはお好みのテキストエディターを使用して、 ` ports.conf +`を開きます。
sudo nano /etc/apache2/ports.conf
`+ Listen 80 +`ディレクティブを含む行を検索し、それを次のように変更します。
ports.conf
Listen
ファイルを保存して終了します。
次に、 `+ apache2.conf +`を開きます。
sudo nano /etc/apache2/apache2.conf
ファイルの最後に次の行を追加します。
apache2.conf
ServerName localhost
ファイルを保存して閉じます。
構成の変更を適用するには、次のコマンドを使用してApacheを再起動します。
sudo service apache2 restart
ブラウザを使用して、 `+ http:/// +`に再度アクセスしてみてください。 サーバーへのリモートアクセスをブロックしたため、ブラウザにエラーが表示されるはずです。
ステップ4-Traffic Serverをリバースプロキシとして設定する
このステップでは、Traffic Serverをリバースプロキシとして設定します。 これを行うには、 `+ remap.config +`を開きます。これは、Traffic Serverのマッピングルールを定義するために編集する必要があるファイルです。
sudo nano /etc/trafficserver/remap.config
ポート8080上のサーバーのIPアドレスへのすべてのリクエストがWebサーバーのローカルアドレスとポートにマッピングされるという簡単なルールを作成しましょう。 これを行うには、ファイルの最後に次の行を追加します。
remap.config
map http://:8080/ http://127.0.0.1:80/
ファイルを保存して終了します。
新しいマッピングルールを有効にするには、 `+ traffic_line `の ` reread_config +`コマンドを使用します。
sudo traffic_line --reread_config
ブラウザを開き、「+ http://:8080 / +」にアクセスします。 Apacheのウェルカムページが表示されたら、Traffic Serverをリバースプロキシとして正常に設定できています。
ステップ5-すべてをキャッシュするためのTraffic Serverの設定
デフォルトでは、Traffic Serverは、アイテムがキャッシュに保存される期間を明示的に指定する `+ Cache-Control `または ` Expires +`ヘッダーを含む場合にのみHTTPレスポンスをキャッシュします。 ただし、Webサーバーは静的ファイルのみを提供しているため、すべての応答をキャッシュしても安全です。
すべてのHTTP応答をキャッシュするようにTraffic Serverを設定するには、 `+ proxy.config.http.cache.required_headers `と呼ばれる設定変数の値を* 0 *に変更する必要があります。 これは、 ` traffic_line `の ` set_var +`コマンドを使用して実行できます。
sudo traffic_line --set_var proxy.config.http.cache.required_headers --value 0
`+ reread_config +`フラグを使用して変更を適用します。
sudo traffic_line --reread_config
ブラウザを開いて、 `+ http://:8080 / +`に再度アクセスします。 これにより、ApacheウェルカムページがTraffic Serverのキャッシュに保存されます。
ステップ6-キャッシュの検査
Traffic Serverのキャッシュのコンテンツを表示するには、Webベースのインターフェースを備えたCache Inspectorと呼ばれるツールを使用できます。
ツールを有効にするには、 `+ proxy.config.http_ui_enabled +`構成変数の値を* 1 *に設定します。
sudo traffic_line --set_var proxy.config.http_ui_enabled --value 1
次に、アクセスに使用するパスを指定するマッピングルールを作成します。 `+ nano `を使用して、 ` remap.config +`を再度開きます。
sudo nano /etc/trafficserver/remap.config
Cache Inspectorを「+ / inspect +」で利用できるようにします。 これを行うには、ファイルの* top *に次の行を追加します。
remap.config
map http://:8080/inspect http://{cache}
ファイルを保存して終了します。
変更を適用するには、Traffic Serverを再起動します。
sudo service trafficserver restart
これで、キャッシュインスペクターを使用する準備ができました。 ブラウザを開き、「+ http://:8080 / inspect / +」にアクセスします。 次のようなページが表示されます。
image:https://assets.digitalocean.com/articles/traffic_server/ajEXtig.png [キャッシュインスペクターのホームページ]
次に、* Lookup url *リンクをクリックします。
これで、テキストフィールドにURLを入力し、* Lookup *ボタンをクリックして、キャッシュに保存されているかどうかを確認できます。
たとえば、「+ http://:8080 / +」と入力して、Webサーバーのホームページがキャッシュから提供されているかどうかを確認できます。 その場合、次のようなページが表示されます。
image:https://assets.digitalocean.com/articles/traffic_server/VFzMcc3.png [キャッシュされたドキュメントの詳細]
結論
これで、Ubuntu 14.04にApache Traffic Serverをインストールし、キャッシングリバースプロキシとして構成する方法がわかりました。 このチュートリアルではWebサーバーとしてApacheを使用しましたが、他のWebサーバーも同様に簡単に使用できます。 Traffic Serverの詳細については、https://docs.trafficserver.apache.org/en/latest/admin/index.en.html [管理者ガイド]をご覧ください。