the glue

やってみたことで忘れそうなこと、役立ちそうなことなどをまとめています。たまに何気ない日常の話もします。

nginxでベーシック認証

タイトル通りです。
普段Apacheはあまり使わないのですが、BASIC認証(でいいや)をかける必要が出てきたのでついでに書いておきます。

環境

  • Ubuntu 14.04
  • nginxがインストール済み

手順

1. htpasswdコマンドを使えるようにする

Debian系(Ubuntuとか)

sudo apt-get install apache2-utils

RHEL系(CentOSとか)

sudo yum install htpasswd

2. .htpasswdファイルを作成

.htpasswdファイルを作成します。
内容はユーザー名:パスワードのペアになりますが、パスワードは暗号化できます。(認証が暗号化されるわけではない)
今回はSHA-1で暗号化します。

htpasswd -nbs ユーザー名 パスワード > .htpasswd

3. nginx.confを書き換え

こんな感じ

location / {
    root   /usr/share/nginx/html;
    index  index.html index.htm index.php;

    auth_basic  "basic auth";  # 認証の時に表示されるメッセージ
    auth_basic_user_file  ".htpasswd" # 先ほど作成した.htpasswdファイルのパス
}

4. nginxを再起動

sudo service nginx restart