Nginx配置basic-auth

在部署web应用服务后,很多场景下需要进行身份认证和访问控制的相关配置,只有在访问者输入了正确的用户密码才允许访问web内容。在这里记录下nginx的简单配置,基于模块ngx_http_auth_basic_module通过使用HTTP基本认证协议验证用户名和密码来限制对资源的访问。

Nginx认证配置实例

1. 生成认证文件

1
2
3
# printf "test:$(openssl passwd -crypt 123456)\n" >>/home/htpasswd
# cat /home/htpasswd
test:xyJkVhXGAZ8tM

2. 配置nignx.conf文件

1
2
3
4
5
6
7
8
9
server{
listen 38443;
location /
{
auth_basic "Please enter your username and password";
auth_basic_user_file /home/htpasswd;
autoindex on;
}
}

3. 重启nginx并验证

1
2
3
4
/etc/init.d/nginx restart

nginx -t # 测试配置是否有误
nginx -s reload # 载入配置文件

指定目录设置访问认证

1. 创建类htpassswd文件

1
wget -c https://www.moerats.com/usr/down/htpasswd.sh;bash htpasswd.sh

按照提示输入用户名,密码及认证名。脚本会自动生成认证文件。

2. 配置nginx.conf文件

1
2
3
4
5
location ^~ /src/
{
auth_basic "Authorized users only";
auth_basic_user_file 这里写前面脚本返回的文件路径;
}

最后再按照上述方式进行重启验证即可。