Nginx中的ngx_http_auth_basic_module模块允许通过验证用户名和密码对资源进行访问控制,默认情况下nginx已经安装了ngx_http_auth_basic_module模块,如果不需要这个模块,可以在编译时加上 --without-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
指定一个文件,保存用户名和密码,文件内容格式:用户名:加密后的密码
配置实例:
nginx中增加配置:
server {
listen 80;
server_name www.yujia.com yujia.com;
root /app/html/www;
index index.html;
auth_basic "secret";
auth_basic_user_file /usr/local/nginx/passwd.db;
}
生成密码,可以使用htpasswd或openssl:
htpasswd -cb /usr/local/nginx/passwd.db yujia 123456 或
echo "yujia:$(openssl passwd -crypt 123456)\n" >> /usr/local/nginx/passwd.db
如果两个命令都没有,也可使用http://tool.oschina.net/htpasswd在线生成
重启nginx生效:nginx -s reload