Basic认证即访问页面的时候弹出来一个用户和密码验证的提示框
1, 安装密码生成工具htpasswd并生成用户密码文件
yum install httpd-tools #适用centos sudo apt-get install apache2-utils #适用ubuntu
2,生成用户密码文件
$ htpasswd -c /var/www/html/.htpasswd user1 #回车会要求输入两遍密码,会清除所有用户! $ htpasswd -bc /var/www/html/.htpasswd user1 password #不用回车,直接指定user1的密码为password $ htpasswd -b /var/www/html/.htpasswd user2 password #添加一个用户,如果用户已存在,则是修改密码 $ htpasswd -D /var/www/html/.htpasswd user2 #删除用户
3,配置nginx
server { listen 80; # root /tmp; # index index.html index.htm; server_name zhukun.net www.zhukun.net; location / { auth_basic "input you user name and password"; auth_basic_user_file /export/servers/.htpasswd; proxy_pass http://127.0.0.1:9000; } }
4,重启nginx,访问页面,如果没有弹出则日志级别调为info
error_log logs/error.log info;
重启再访问,如果提示如下错误
*69 no user/password was provided for basic authentication, client: x.x.x.x, server: www.x.com, request: "GET /xxx HTTP/1.1", host: "www.x.com"
则表示error_page配置的401页面不存在或者指向问题导致的,可以注释掉401配置或者保证401配置指向的文件可用。
访客评论