ngx_http_auth_basic_module模块实现让访问者只有输入正确的用户密码才允许访问web内容。web上的一些内容不想被其他人知道,但是又想让部分人看到, 默认情况下nginx已经安装了ngx_http_auth_basic_module模块,如果不需要这个模块。
nginx basic auth指令
语法: auth_basic string | off;
默认值: auth_basic off;
配置段: http, server, location, limit_except
默认表示不开启认证,后面如果跟上字符,这些字符会在弹窗中显示。
语法: auth_basic_user_file file;
默认值: —
配置段: http, server, location, limit_except
1,创建密码控制文件
htpasswd -c /usr/local/nginx/passwd.db logs #创建密码控制文件,这里是用户logs为例,注意路径请根据需要设置
New password: ******* //输入认证密码
Re-type new password: ******** //再次输入认证密码
chown www.www /usr/local/nginx/passwd.db
#给新建文件授权,这里以www用户为例,一般为nginx使用的用户
2,nginx配置,这里以我的为例:
server
{
listen 80 ;
server_name logs.123.cn ; #域名请根据需要写
index index.html index.htm index.php;
location /
{
auth_basic "logs.123.cn"; #前台提示信息,可自行更改
auth_basic_user_file /usr/local/nginx/passwd.db; #密码文件路径
autoindex on; #本句允许列目录可开可不开
proxy_pass http://127.0.0.1:5601 ; #我这里做了转发,也可以直接使用网站目录方式
}
}
3,重启访问测试:
service nginx restart
访问网站有以下提示,输入用户,密码即可。