kogad's blog
nginx で Basic 認証をかける

.htpasswd ファイルを作成して、

sudo apt install apache2-utils sudo htpasswd -c /etc/nginx/.htpasswd user

nginx.confauth_basicauth_basi_user_file を設定。

location / { auth_basic "Restricted Content"; auth_basic_user_file /etc/nginx/.htpasswd; }

自分の場合、Basic 認証を超えた先に grafana のログイン画面を用意していたため、grafana の認証に対して Basic 認証の情報が渡って認証に失敗していた。 Basic 認証は Authorization ヘッダに認証情報を持たせているので、Basic 認証の先に Authtorization ヘッダを使うような認証がある場合、Basic 認証の認証情報がその認証に伝わってしまい、認証に失敗してしまうっぽかった。 下記のように proxy_set_header で Authorization ヘッダの中身を空にすると対応できた。

proxy_set_header Authorization "";