パーシステンス「Cookie Insert」の設定¶
- 動作確認バージョン
vThunder Version 6.0.7-P2
ここではセッション維持方式として、Cookie Insertによる方式を紹介します。
Cookie Insertとは
ECサイトなどでは、クライアント(ユーザーのブラウザー)とサーバー間の一連の通信において、セッションを維持することは非常に重要です。
Cookie Insert機能では、ロードバランサーが最初にリクエストを振り分けた際に、 特定の識別情報(Cookie) をクライアント(ブラウザー等)に付与します。
以降、クライアントはこのCookieを含めて通信を行うため、ロードバランサーは同じ識別情報を基に同じサーバーへリクエストを振り分け続け、一連の画面遷移などで矛盾が発生しない安定した通信を維持できます。
注釈
当該手順では前提として、事前にサーバー名「server01/02」をロードバランサー(vThunder ADC)へ登録しています。(参考:リアルサーバーを登録・編集・削除する )
当該手順では前提として、事前にサービスグループ名「servicegroup01」を作成、メンバーにサーバー名「server01/02」を登録しています。(参考:サービスグループを登録・編集・削除する )
サンプル設定のシナリオ
クライアントからサーバーへのアクセスに対して、パーシステンス「Cookie Insert」を利用してセッションを維持する
構成図
シナリオにおける設定のながれ
1.テンプレートの種類に「persist」を指定して、テンプレート名「COOKIE-PER」を作成する。
CLIにて入力するコマンド
vThunder(config)#slb template persist cookie COOKIE-PER
vThunder(config-cookie persist)#
正しく設定が完了したときのコンフィグレーションは次のとおり。
vThunder#show run slb template persist cookie COOKIE-PER
!Section configuration: 42 bytes
!
slb template persist cookie COOKIE-PER
!
2.テンプレート名「COOKIE-PER」をVirtual Server名「vserver01」へ紐づける。
CLIにて入力するコマンド
vThunder(config)#slb virtual-server vserver01 172.16.10.101
vThunder(config-slb vserver)#port 80 http
vThunder(config-slb vserver-vport)#template persist cookie COOKIE-PER
正しく設定が完了したときのコンフィグレーションは次のとおり。
vThunder#show run slb virtual-server vserver01
!Section configuration: 174 bytes
!
slb virtual-server vserver01 172.16.10.101
port 80 http
service-group servicegroup01
template persist cookie COOKIE-PER
!
動作確認結果
1.クライアント側のサーバーで次のコマンドを実行する。出力結果からアクセスが振り分け先のサーバー(例:server01)を確認する。
ubuntu@clientvm:~$ curl -c cookie.txt http://test.example.com
server01
2.クライアント側のサーバーで次のコマンドを実行する。出力結果から「cookie.txt」へ取得・保存したcookie情報を確認する。
ubuntu@clientvm:~$ cat cookie.txt
# Netscape HTTP Cookie File
# http://curl.haxx.se/docs/http-cookies.html
# This file was generated by libcurl! Edit at your own risk.
test.example.com FALSE / FALSE 1798080650 UqZBpD3n3iPIDwJU
3.クライアント側のサーバーで次のコマンドを実行する。出力結果から取得・保存したcookie情報を利用して再アクセスした場合に振り分け先のサーバー(例:server01)が同一となることを確認する。
ubuntu@clientvm:~$ curl -b cookie.txt http://test.example.com
server01
ubuntu@clientvm:~$ curl -b cookie.txt http://test.example.com
server01
ubuntu@clientvm:~$ curl -b cookie.txt http://test.example.com
server01
