nginx で Basic 認証

2014年11月17日 18:23

nginx で Basic 認証を実現するのは難しくない。むしろ Apache の .htaccess(もしくは httpd.conf)に書くあれやこれやよりシンプルだったりする。大雑把に言えば、nginx.conf に以下の2つの項目を追加するだけで済む。

auth_basic "hogehoge";
auth_basic_user_file "/path/to/.htpasswd";

auth_basic の値はブラウザが表示する認証ダイアログで使われる文字列なので、「Restricted」でも「Enter Username and Password」でも何でも構わない。auth_basic_user_file は暗号化したパスワードファイルの置き場所だが、/etc/nginx/ 直下が適当だろう。

ただし、だ。肝心の .htpasswd ファイルを作るために必要な htpasswd コマンドは大抵、Apache と一緒にインストールされるため、最初から nginx な環境だと入っていなかったりする。さらに yum install htpasswd を実行しても No package htpasswd available. となる。

答はすでにツイート中にあるが、htpasswd コマンドは httpd-tools というパッケージに収められている。なので、yum install httpd-tools で万事解決。