nginxでBasic認証かけると404になる

kifuyu.netに非公開のページを作りたくてBasic認証を導入しました。
NginxでBasic認証を行うためにはApacheでいう.htaccessのようなファイルに書き足す必要があります。
今回はBasic認証導入後に404が連発してしまったのでその対処のメモ書きです。

▶任意のディレクトリにBasic認証をかける
▶locationの記述位置を誤ると404

・パッケージの導入

$ sudo yum install -y httpd-tools
$ sudo htpasswd -c /etc/nginx/conf.d/.htpasswd <userName>

ここまでで/etc/nginx/conf.d/.htpasswdに <userName>のパスワードが生成されてます。
htpasswdのオプションを-cから-mにするとMD5でハッシュされます。気になる人は後者の方がいいかもしれませn。
ところでNginxでは設定をファイルごとにincludeできるので、私はconf.dというディレクトリを作ってconfファイルを分割して格納しています。

・Nginxのconfファイルの設定を行う

$ vi /etc/nginx/conf.d/<httpの設定が書かれたconfファイル>.conf

ある任意のディレクトリ “nyan”にBasic認証をかけます

server {
location / { ....
    location /nyan/ {
            auth_basic "Auth";
            auth_basic_user_file /etc/nginx/conf.d/.htpasswd;
    } #location /naynの終
} #location / の終

注意しないといけないのはディレクトリ”nyan”のlocation設定がRoot以下のlocation設定内に書かれてないといけないことです。
リファレンス読まずlocationごとに中括弧をつけていたので404連発でした。

しっかし平文でパスワードやりとりするのは…

Leave a Reply

Your email address will not be published.

CAPTCHA