Lab 1 - GUI で Snippets を設定する

このラボのゴールは、v3.22.0 から追加された機能 “Snippets” の設定と動作の確認です。

Important

想定時間: 10分

Note

このラボの手順はラボを実施する方がWindows jumphost – jumphost-1 から操作する手順を示しています。 接続方法についてはこちらを参照ください。 F5 Labs - Index

Snippets について

Snippets はNGINX Controller ADCのGUI/APIで、通常のNGINX Configと同様に記述した設定を そのまま 対象のNGINX Plusに追加・反映する機能です。

Snippets は5種類の設定項目があり、それぞれの設定に応じて GatewayComponent のメニューで設定を追加します。

Snippet 内容 Endpoint
httpSnippet 設定をHTTP Blockに追加します Gateway
mainSnippet 設定をMain Blockに追加します Gateway
streamSnippet 設定をStream Blockに追加します Gateway
uriSnippets 設定を対象GatewayのServer Blockに追加します Gateway
uriSnippets
設定を対象ComponentのServer Block
またはLocation Blockに追加します
Component
workloadGroupSnippets 設定をUpstream Blockに追加します Component

Note

URI Snippets は TCP/UDP のコンポーネントでは動作しない場合があります

その他 Snippets の詳細については About Snippets をご確認ください

GUI を開きます

  1. Chromeを開く

  2. ブックマークよりNGINX Controller のGUIにアクセス

    ../../_images/ControllerBookmark5.png
  3. NGINX Controller のadmin accountである、Peter Parker でログインしてください

    Username Password
    peter@acmefinancial.net Peter123!@#
    ../../_images/ControllerLogin-Peter4.png
  4. Services を開いてください

    ../../_images/Tile-Services4.png

Gatewayを開き、Snippetを追加します

  1. “Gatweay” を選択してください

    ../../_images/M6L1gateways.png
  2. echoappgw を開いてください

    ../../_images/M6L1echoappgw.png
  3. “Edit Config” をクリックし、設定画面に移動します

    ../../_images/M6L1echoappgw-Edit.png
  4. “Additional” をクリックします。Config Snippets まで画面をスクロールし、Gateway で対応しているSnippetsに設定を追加します

    Field Value
    Main Snippet worker_rlimit_nofile 2048;
    HTTP Snippet allow 192.168.1.0/24;
    Stream Snippet allow 192.168.2.0/24;
    URI Snippet allow 192.168.3.1/32;
    Applicable URIs http://echoapp.net
    • 設定追加画面

      • ../../_images/M6L1echoappgw-GatewaySnippet.png
  5. Submit をクリックし、操作を完了させてください

    ../../_images/M6L1Submit.png

App Componentを開き、Snippetを追加します

  1. “Apps” を選択してください

    ../../_images/Services-Apps4.png
  2. echoapp を開いてください

    ../../_images/M6L1echoapp.png
  3. echoappcomponent を開いてください

    ../../_images/M6L1echoappcomponent.png
  4. “Edit Config” を選択してください

    ../../_images/M6L1echoappcomponent-EditConfig.png
  5. “Snippets” をクリックしてください。 “URI Snippets” 、 “Workload Group Snippets” の欄があります。各設定を追加するため、 Add URI SnippetAdd Workload Group Snippet をクリックしてください

    ../../_images/M6L1echoappcomponent-Snippets.png
  6. Component で対応しているSnippetsに設定を追加します。以下の内容を参考に設定を追加してください

    Field Value
    URI Snippet allow 192.168.4.1/32;
    Applicable URIs /
    Workload Group Snippet sticky cookie echo_cookie expires=3h domain=.$host path=/;
    Applicable Workload Groups Echo Backend (自動的に Select Allもチェックされます)
    • 設定追加画面

      • ../../_images/M6L1echoappcomponent-URISnippets.png
      • ../../_images/M6L1echoappcomponent-WLSnippets.png
  7. Submit をクリックし、操作を完了させてください

    ../../_images/M6L1Submit.png

CLIより、Snippet で追加した内容を確認します

  1. “nginxplus-3” インスタンスにログインしてください。”PuTTY” を開き、保存済みのホストより nginxplus-3 を選択し、Open をクリックしてください

    ../../_images/M6L1Putty.png

    Important

    もし、Puttyがサーバのホスト鍵に関する警告を示した場合、接続のため Yes をクリックしてください これは、ラボ環境の各ホストでユニークなhost keyを生成するため生じるものです

  2. 設定を確認します

Snippet の反映結果確認
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
$ egrep 'http {|stream {|server {|listen |server_name |location |Echo Backend|allow |echo_cookie|worker_rlimit_nofile' nginx.conf
http {
        allow 192.168.1.0/24;
        upstream 'Echo Backend_http_68fc5a3b-b6a2-4b9b-b2cd-fdd119d933e8' {
                zone 'Echo Backend_http_68fc5a3b-b6a2-4b9b-b2cd-fdd119d933e8' 160k;
                sticky cookie echo_cookie expires=3h domain=.$host path=/;
        server {
                server_name _;
                listen 443 ssl;
                listen 80;
        server {
                server_name trading.acmefinancial.net;
                listen 80 reuseport;
                location / {
                location /api {
        server {
                server_name trading.acmefinancial.net;
                listen 443 ssl reuseport;
                location / {
                location /api {
        server {
                server_name echoapp.net;
                listen 443 ssl;
                location / {
                        allow 192.168.4.1/32;
                        proxy_pass 'http://Echo Backend_http_68fc5a3b-b6a2-4b9b-b2cd-fdd119d933e8';
        server {
                server_name echoapp.net;
                listen 80;
                allow 192.168.3.1/32;
                location / {
                        allow 192.168.4.1/32;
                        proxy_pass 'http://Echo Backend_http_68fc5a3b-b6a2-4b9b-b2cd-fdd119d933e8';
        server {
                server_name 127.0.0.1;
                listen 127.0.0.1:49151;
                location /api {
worker_rlimit_nofile 2048;
stream {
        allow 192.168.2.0/24;

順に設定について確認します。

  • Gatweay Snippet
    • Main Snippet で指定した内容は、38行目に設定されています
    • HTTP Snippet で指定した内容は、3行目に設定されています
    • Stream Snippet で指定した内容は、40行目に設定されています
    • URI Snippet で指定した内容は、28行目、29行目の通り Applicable URIs で指定した server_name と listen port に該当する Server Block で有効になっており、30行目で許可アドレスが設定されています
  • Component Snippet
    • URI Snippet で指定した内容は、Componentの対象となる、location / 内となる 25行目、32行目に設定されています
    • Workload Group Snippet で指定した内容は、Echo Backend 内のセッションパーシステンスとして 6行目に設定されています

おめでとうございます!! NGINX Controller Lab はこれで完了です。