てけノート

on the foot of giants

[nginx]X-forwarded-forでIP制限をする

      2016/10/11


やりたいこと

クライアントのIPがX-forwarded-forの中に

<some IP>, <some IP>, <client IP>, <Load Balancer's IP>

みたいに入ってくるとき、client IPでアクセス制限をかけたい。でも正規表現はよくわかってない。

答え

http://blog.dksg.jp/2012/09/ip-address503-pagenginxconf.html
これに大体書いてあるのだが、serverなりlocationなりの中で

  set $allowed "";
  if($http_x_forwarded_for ~ XXX\.XXX\.XXX\.XXX){
    set $allowed "yes";
  }
  if($allowed != "yes"){
    return 403;
  }

とかしてやればよい。このとき、ifの条件判定としては ~ は含むかどうかの判定。
https://wasabeef.jp/583/

本当は正規表現やらで最後から二番目を指定したいんだけど、わからなかったです。

 - プログラミング