nginxでBasic認証をする
nginx version: nginx/1.4.1
Linux debian 3.2.0-4-amd64
サイトにBasicかけたかったので調べた。
nginxがBasic認証時に使う認証ファイルの生成には、apacheが使っているモジュールと同じものを使う。
認証ファイルの生成はapache2-utilsというソフトウェアを使う。
apacheに同梱されてるものだと思うけど今回の環境でapacheは入れてないのでapache2-utilsをインストールした。
インストール
sudo apt-get install apache2-utils
Basic認証ファイル
$ sudo htpasswd -c /etc/nginx/htpasswd "#{ユーザ名}" New password: Re-type new password: Adding password for user hoge
htpasswdというファイルが生成される。
上で入力したユーザ名と入力したパスワードがBasic認証時に必要になる。
設定ファイルにかく
nginx.conf
location / { + auth_basic "Restricted"; + auth_basic_user_file /etc/nginx/htpasswd; .......
認証をかけたいlocationディレクティブに上の2行を書けばOK。