nginxを入れてBasic認証を設定する

さくらVPSにnginxをインストールしBasic認証設定を行ったので、まとめておく。

これまで、nginxを仕事などで使うことはあったが、自分で設定を行ったりしたことはなかった。
そこで、さくらVPSにnginxをインストールしていろいろ試してみることにした。
今回は、インストールのついでにBasic認証の設定も行ったので、その方法もまとめておく。

さくらVPS上にはCentOS7が入っているので、yumを使ってnginxをインストールし、起動しておく。

$ sudo yum install -y nginx
$ sudo systemctl start nginx

デフォルトだと80番ポートが開放されていないので、firewallの設定を変更してhttpでアクセスできるように設定を変更する。

$ sudo firewall-cmd —add-service=http —zone=public —permanent
$ sudo firewall-cmd —reload

これでインストールは完了した。
ブラウザからサーバーのIPアドレスドメインにアクセスしてnginxの画面が表示されることを確認する。

次にBasic認証設定を行う。
Basic認証にはパスワードを設定する必要があり方法がいくつかあるのだが、今回はツールを使うことにした。

$ sudo yum install -y httpd-tools
$ sudo htpasswd -c /etc/nginx/.htpasswd user
# パスワードの入力を求められるので設定する

これで認証用のファイルが作成されたので、nginxの設定を変更する。
今回は全てのページへのアクセスにBasic認証を要求したいので、server設定直下に記述を追加した。

$ sudo vim /etc/nginx/nginx.conf

http {
  ...
  server {
    ...
    # Basic permission
    auth_basic "Restricted";
    auth_basic_user_file /etc/nginx/.htpasswd;
    ...
  }
}

$ sudo systemctl restart nginx

以上でBasic認証設定も完了した。
先程と同じページにアクセスするとユーザー名とパスワードが要求される。

参考

Nginx を CentOS 7 にインストールする手順 | WEB ARCH LABO
Nginx で Basic 認証