nginxでBasic認証の設定方法
Apacheのhtpasswdはインストールせずにopensslでパスワードファイル作成する方法です。
ユーザーファイルの作成とパーミッション設定
$ sudo echo "ユーザ名:$(openssl passwd -apr1 パスワード)" > /usr/share/nginx/html/user_passwords $ sudo chmod 400 /usr/share/nginx/html/user_passwords $ sudo chown nginx /usr/share/nginx/html/user_passwords
ここでは、nginx(Nginxの実行しているシステムユーザー)のみのパーミッションに設定しています。
また簡易なプレビューサイトを想定して、ドキュメントルート以下においてますが、
実際の運用では適時DocumentRootより上位ディレクトリなどへの配置に変更ください。
(まぁ運用の場合、そもそもBasicな認証で良いのかというのは、)
Nginxのコンフィグファイルの設定
server {
listen 80;
server_name example.com;
root /usr/share/nginx/html/example.com;
index index.php index.html;
auth_basic "preview site";
auth_basic_user_file /usr/share/nginx/html/user_passwords;
location / {
〜略〜
}
}
server { ~ } のコンテキストに記載してこのドメイン全てに反映。
http{ ~ } , location { ~ } に書いて、サーバーのhttp全体、特定ディレクトへの反映も可能
コメントを残す