Nginx で特定 URL を Basic 認証から除外する方法をご紹介します。
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 認証から除外した、現場からお送りしました。