实现用户名和密码验证访问,可以直接使用Nginx 的http_auth_basic_module模块。
简介
语法: auth_basic_user_file file;
默认值: —
配置段: http, server, location, limit_except
用户密码加密方式
http://nginx.org/en/docs/http/ngx_http_auth_basic_module.html
关于密码
- 官方文档里对支持的密码类型进行了说明:
- 采用系统函数crypt()加密的密码;可通过htpasswd命令或者openssl passwd命令生成
- 通过Apache提供的基于MD5的变种加密算法(apr1),同样可通过htpasswd 或者openssl passwd命令生成
- 以
{scheme}data
格式表示的加密后的密码,RFC 2307中有对该格式的密码标准进行了说明。其中scheme指的是加密算法,nginx支持的scheme有PLAIN, SHA,SSHA算法。
- 密码生成示例:
- 安装相关工具
yum install -y httpd-tools
- 初次使用生成数据库和用户(之后更新或新增用户去掉-c即可)
root@xxxx:~# htpasswd -c /usr/local/nginxpwd user //数据库路径 以及 用户名 New password: ******* //输入认证密码 Re-type new password: ******** //再次输入认证密码 root@xxxx:~# chmod 755 /usr/local/nginx/passwd //修改网站认证数据库权限 root@xxxx:~# cat /usr/local/nginx/passwd //可以看到通过htpasswd生成的密码为加密格式 user:$apr1$pVpIZigz$URwphPhvGl9pDarM9phOw/
配置示例
如下:
location / { auth_basic "Name of Your Site"; auth_basic_user_file /usr/local/nginx/passwd; }
- 安装相关工具