ショウジンブログ

Learn as if you will live forever, Live as if you will die tomorrow.

特定のディレクトリにベーシック認証をかける@Nginx

Sponsored Links

Webルートディレクトリにベーシック認証をかけるのは「ベーシック認証を利用する@Nginx」でよかったのですが、ルート配下の特定のディレクトリに対しての方法がわからなかったので調べてやってみました。

blog.showzine.co

nginxではApacheのhtpasswdが使えるので、パスワード設定ファイル(.htpasswd)を用意しておいて、これを認証をかけたいディレクトリ直下に置く。(自分はだいたいいつも.htaccessEditorにお世話になってます)

ホストの設定ファイル

/etc/nginx/nginx.conf

か、バーチャルホストで複数サイトを運用している場合は

/etc/nginx/sites-available/

内の該当ホストの設定ファイルを編集します。

自分の場合はバーチャルホスト運用しているので、sites-available/内のそのサイトの設定ファイル(ドメイン名)を編集しました。

/etc/nginx/sites-available/example.com

今回は「/blog/」ディレクトリにベーシック認証をかけるので、この設定ファイルの中のserverブロック内にlocationブロックを追加して以下のようにします。

location /blog {
    # /blogディレクトリにベーシック認証をかける
    auth_basic "Local Security"; 
    auth_basic_user_file "/var/www/example.com/public_html/blog/.htpasswd";
}

auth_basic_user_fileにある「.htpasswd」へのパスは適宜書き換え。

新しい設定を有効化するためにこの設定ファイルをリロードする。

以下のコマンドを実行。

$ sudo /usr/sbin/nginx -s reload

以上です。

ハイパフォーマンスHTTPサーバ Nginx入門

ハイパフォーマンスHTTPサーバ Nginx入門