子持ちプログラマーの日記

子持ちのプログラマーがWeb関連の技術、育児、ガンプラのことを書くブログ

【nginx】Basic認証の設定

nginxでBasic認証をかけてみます。

htpasswdを作成

2パターンあります。

その1 作成ツールを使う

BASIC認証用 パスワード暗号化ツール
http://www.luft.co.jp/cgi/htpasswd.php

ユーザー、パスを入れてできたものをコピペして、ファイルを作成するだけです。

その2 htpasswdコマンドを使う

httpd-toolsが必要なのでインストールしていない場合、以下でインストール

yum install -y httpd-tools

Apache自体はインストールされません。

ファイル作成

htpasswdコマンドを使い以下のようにファイルを作成する

# cd /etc/nginx/conf.d/
$ htpasswd -c .htpasswd [ユーザー名]
New password: [パスワード]
Re-type new password: [パスワード]

設定ファイル編集

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

補足

  • auth_basic:
    • 認証名を設定しています。
  • auth_basic_user_file
    • 先ほど作ったhtpasswdのパス(フルパス)

設定反映&確認

毎度のことですが、設定を反映するために再起動(リロード)します。

# /etc/rc.d/init.d/nginx configtest
# /etc/rc.d/init.d/nginx reload

その後ブラウザでアクセスし、以下のようなダイアログがでて、ユーザー、パスワードを入れてページが表示されたら成功です。
f:id:kouji0607:20150514232537p:plain