[Nginx] 特定 URL を Basic 認証から除外する方法
Nginx で特定 URL を Basic 認証から除外する方法をご紹介します。
satisfy any と allow all を設定する
Nginx の Basic 認証から特定の location を除外するには、以下のような設定ファイルを記述します。
# /usr/local/nginx/conf/yourdomain.example.com.conf server { listen 80; # Basic 認証の設定 auth_basic "auth"; auth_basic_user_file /path/to/.htpasswd; root /path/to/root; # Basic 認証から除外する設定 location /path/to/exception { satisfy any; allow all; } } |
または、以下のように bypass_basic_auth_locations というファイルに記述して include するというアプローチもあります。
# bypass_basic_auth_locations location /css { satisfy any; allow all; } location /img { satisfy any; allow all; } location /js { satisfy any; allow all; } |
# /usr/local/nginx/conf/yourdomain.example.com.conf server { listen 80; # Basic 認証の設定 auth_basic "auth"; auth_basic_user_file /path/to/.htpasswd; root /path/to/root; # Basic 認証から除外する設定 include bypass_basic_auth_locations; } |
以上、Nginx で特定ディレクトリを Basic 認証から除外した、現場からお送りしました。
参考情報
- [Linux] nginxでBasic認証を行う方法(CentOS) – YoheiM .NET
- nginx: 同じ configuration level で auth_basic off は指定できない – Sexually Knowing