nginx 一部のアドレスにbasic認証を掛けない。

satisfy [all|any]

というディレクティブがある。

allow deny
satisfy any 認証なし Basic認証あり
satisfy all Basic認証あり アクセス拒否

設定例

100.100.100.100からのアクセスだけ認証を掛けない設定。

server {
    #....
        location / {
            satisfy any;
            allow 100.100.100.100;
            # ここにbasic認証を掛けたくないIPを追加していく
            deny all;
            auth_basic "basic authentication";
            auth_basic_user_file /etc/nginx/.htpasswd;
        }
}