nginxのBASIC認証
nginxサーバを立ててBASIC認証を行う
実行環境
(GCPのVM上で行いました)
ubuntu: 18.04
nginx: 1.19.1
実装
以前とnginxのデフォルトのconfファイルが変更されている模様。
どの記事を真似しても上手くいかず、手間取ってしまったので記しておく。
nginxのインストール
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install nginx
認証用usernameとpasswordの設定
.htpasswdファイルを/etc/nginx/以下に配置。(通常はここ)
二行目は、htpasswdコマンドを使うためにパッケージのインストール
そして、登録したいusernameとpasswordを設定する。
$ sudo touch /etc/nginx/.htpasswd
$ sudo apt-get install apache2-utils
$ sudo htpasswd -c -b /etc/nginx/.htpasswd [USERNAME] [PASSWORD]
ちなみに、htpasswd
コマンドでは、-cで新しく.htpasswdファイルを生成するので、2回目以降にユーザを追加する際には外す。
confファイル
/etc/nginx/conf.d以下の*.conf
がincludeされる設定になっているはずなので、拡張子の前の名前はなんでも良い。
ここではhoge.conf
としておく。
- 80番ポートで接続を待ち受ける
- rootで指定したディレクトリ以下のページを表示
- 表示したいhtmlファイルは、indexラベルを貼って登録しておく(←個人的忘却ポイント)
- location /
以下のauth_basic
は認証のダイアログの設定
- auth_basic_user_file
では認証情報の設定ファイルを指定。
/etc/nginx/conf.d$ cat hoge.conf
server {
listen 80 default_server;
server_name 0.0.0.0;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
location / {
auth_basic "Please Login";
auth_basic_user_file /etc/nginx/.htpasswd;
}
}
confファイルの確認
以下のコマンドで、confファイルの文法の確認をする。
下の二行のような表示が出ればOK:)
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
読み込み
今行った設定を読み込ませて表示させる。
$ sudo nginx -s reload
上手くいかない場合は、
/etc/nginx/nginx.conf
から、 /etc/nginx/sites-enabled/
をincludeする設定を消すことを試してみて欲しい。
今度はログイン試行の回数制限なんかも設けてみようと思います。
パスワードリストにあるパスワードは登録できないようにしたりしてみたい
Author And Source
この問題について(nginxのBASIC認証), 我々は、より多くの情報をここで見つけました https://qiita.com/comedy_love/items/a355c842d8497a011543著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .