Nginx で Basic 認証をかけたい

環境

  • CentOS7
  • Nginx

Basic 認証とは

任意のURLにアクセスした時、
簡易的にユーザー名とパスワードを求める方法。

apache (webサーバー) を使用しているレンタルサーバーなどでは、
.htaccess ファイルと .htpasswd ファイルを使って
Basic 認証をかけたりしていると思う。

Nginx では .htaccess は使えない。
なので .htaccess が設置してあっても読み込まない。

Nginx の conf ファイルと .htpasswd ファイルを使って、
Basic 認証をかけてみる。

.htpasswd ファイルの作成

  • 設置する場所はどこでもいい。今回は /path/to/your/project に設置する
  • パスワード生成
$ cd /path/to/your/project
$ vi .htpasswd

# ユーザー: test パスワード: test に設定
test:ay3T3miIsxmzI

xxx.conf

$ cd /etc/nginx/conf.d/
$ vi xxx.conf
server {
	listen       80;
	server_name  sample.com;

	root   /path/to/your/project/public;
	index  index.html index.htm;


	# Basic 認証の設定
	# 先ほど生成した .htpasswd ファイルを指定する
	auth_basic "Restricted";
	auth_basic_user_file /path/to/your/project/.htpasswd;
}
# syntaxチェック
$ nginx -t

# 再起動
$ systemctl restart nginx.service

関連投稿