nginx を用いて Cloudflare 経由のアクセスをアクセス元の IPアドレス で区別して 弾く/通す 方法

前提

以下の記事の具体例を端的に書きます。

conf ファイル

設定ファイルは以下のようにするとよいかと思います。$http_x_forwarded_for を用いるのがポイントです。

ここでの条件および期待する結果は次のとおりです。

  • 123.123.123.123 および 231.231.231.231 からのアクセスのみ許可し、それ以外からのアクセスに対しては 403 を返す
map $http_x_forwarded_for $is_denied {
  default 1;
  123.123.123.123 0;
  231.231.231.231 0;
}

server {
  if ( $is_denied = 1) {
    return 403;
  }

(省略)
}

IfEvil なのでなるべく使わないほうがいいとは思いますが、ササッと書く場合などでは使うのもまあアリかなと思います。

Powered by はてなブログ