前提
以下の記事の具体例を端的に書きます。
conf ファイル
設定ファイルは以下のようにするとよいかと思います。$http_x_forwarded_for
を用いるのがポイントです。
ここでの条件および期待する結果は次のとおりです。
123.123.123.123
および231.231.231.231
からのアクセスでは認証(BASIC認証)なしでアクセス可能だが、それ以外からアクセスには BASIC認証 を要求するAUTH_FILE
は*1htpasswd
コマンドで生成したものです- 中身は
foobar:$apr1$agluSKU$Ft8Esuam3hl1Ezs/nrLz5b
みたいな感じです
- 中身は
map $http_x_forwarded_for $auth_basic { default "Please enter authentication information"; 123.123.123.123 off; 231.231.231.231 off; } server { auth_basic_user_file /path/to/AUTH_FILE; auth_basic $auth_basic; (省略) }
現在において BASIC認証 を使う機会はあまりないでしょうが、Cloudflare からのアクセスの振り分けの一例として書きました。
*1:仮の名前とはいえ変な命名ですが