「nginx」カテゴリーアーカイブ

nginx x-forwarded-forでアクセス制限

Amazon EC2でロードバランサを使っていると、セキュリティグループでのIP制限がきかない。
そりゃそうだよね、ロードバランサいるんだから。

インスタンス内でIP制限する必要がある。
接続元のIPは、X-FORWARDED-FORヘッダに入っているので、この値を見て制限をかければよいということらしい。

今回はnginxを使ったので、こんな感じ。

1
2
3
4
5
6
    set $allow "false";
    if ($http_x_forwarded_for ~ " ?111\.111\.111\.111$" ) { set $allow "true"; }
    if ($http_x_forwarded_for ~ " ?22\.22\.22\.22$") { set $allow "true"; }
    if ($allow = "false") {
      return 403;
    }

andとかorとかif分のネストとかできないnginxの設定ファイルなので、フラグを使っております。
trueとfalseが文字なのは、深い意味は無い。