ELBを使ってるnginxでIPでアクセス制限をかける方法
ELBは、アクセス制限をかけれず、Webサーバー側でアクセス制限をかけないとダメ。
それで、ちょっと強引だけどnginxでX_FORWARD_FORの値でアクセス制限をかける方法。
set $valid_access 'false'; if ($http_x_forwarded_for = '') { # From ELB set $valid_access 'true'; } if ($http_x_forwarded_for = 'xxx.xxx.xxx.xxx') { # From me set $valid_access 'true'; } if ($valid_access != 'true') { return 401; }
最初はELBからのヘルスチェックを通す設定。
次は、IPでの許可。列挙可能。
許可しないときは、401コードを返す。
nginxのifでは、else if、ifのネスト、条件のand/or結合ができないらしいので、上記の書き方に。
これをserverの中に書く。
合ってるか不安・・・
もっと良いやり方は無いのかな・・・