nginxのbasic認証

パスワードの作成はhtpasswdコマンドを使う。これはapache2のパッケージに含まれるのでapache2をインストールしてから実行する。

# aptitude install apache2-utils
# htpasswd -nb username password > /etc/nginx/password

上記の例では、BASIC認証用のパスワードを/etc/nginx/passwordに作成している。このパスワードファイルを参照するようにするnginxの設定は、auth_basic_user_fileとなる。

location ^~ /wp-admin/ {
auth_basic "Restricted"; 
auth_basic_user_file /etc/nginx/password;
access_log off; proxy_no_cache 1;
proxy_cache_bypass 1;
proxy_pass http://unix:/var/run/nginx.sock;
}

これはWordPressの管理画面にアクセスする際にBASIC認証を一度挟む設定例だが(UNIXドメインソケット経由でPHPを動かしている場合の例)、このような設定をしておくことによって、WordPressのログイン画面を晒さずに済む。