Nginxで管理しているすべてのバーチャルホストにBasic認証を掛け、特定のサイトのみ認証フローをスキップさせたいと考えております。

当初HTTPブロックで上記を実現しようとしましたが、IfモジュールはHTTPブロックでは使用できませんでした(設定内容は後述)。各バーチャルホストのServerブロックに記述すれば、動作するとは思いますが、なるべく一カ所にまとめて記述することで見通しをよくし、一括で管理できればと考えております。

何か良い解決策があればご教授いただければ幸いです。

下記は、失敗時の設定サンプルです。(nginx.conf HTTPブロック内)

# Basic認証除外リスト 
map $http_host $skip_auth_host { 
  default false;
  sample-AAA.com true;
  sample-BBB.com true;
} 
# Basic認証 
if ($skip_auth_host = true) { 
  auth_basic  "basic authentication"; 
  auth_basic_user_file pathto/htpasswd; 
}