nginx.conf周りについて調べてみた

nginx.confについて調べてみた

今更な記事ですが、お付き合いください。
とある案件において、AWS WAF & Shiledを使うかnginxでIP制限をするかになった話です。

WAF & Shiledは正規表現が使えず、要望は上がっているようですが、まだまだ対応は入らないようです。
その点、nginxは正規表現やifなどで簡易的な条件によるアクセス制限が設けられます。

今回は案件において、nginxで解決することにしました。

調べた内容

ALB + nginxという構成で、特定のパスをIP制限したい、という要望でしたので以下のような形でIP制限を設けました

confのserverセクション内で以下のようにかけばOKでした。

        location /URI {
            set $allowed "";
            if ($http_x_forwarded_for = AAA.BBB.CCC.DDD) {
                 set $allowed "yes";
            }
            if ($allowed != "yes") {
                 return 403;
            }
        }

$allowedにyesが入ればページが見ることができ、空であれば403を返す形ですね。
変数が使えるところに、なるほどなーと思ってます。

あとはこの記述が結構好きです。

        location /URI1/ {
            allow A.B.C.D;
            allow AA.BB.CC.DD;
            allow AAA.BBB.CCC.DDD;
            deny all;
        }

        location /URI2/ {
            allow A.B.C.D;
            allow AA.BB.CC.DD;
            allow AAAA.BBBB.CCCC.DDDD;
            deny all;
        }

この形はnginxでURIのアクセス拒否するのにスゴーーーク便利です。
AWSのセキュリティグループでアクセスできるIPは絞ってますが、お客様毎にこちらはアクセスできるけど、あちらはアクセスできないようにする、みたいなことがすごく簡単にできます。

なので、スゴーーーーク便利なわけです。
まあapacheでもできるんですけど、nginxの方がわかりやすいんですよね。
個人的な一意見ですけれども。。。

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

%d人のブロガーが「いいね」をつけました。