Nginx的访问认证

时间:2021-10-24 12:16:38

1、设置访问认证的作用:

  在实际的工作中,有时候我们会接到给网站加密的任务,就是需要有用户名和密码才能访问网站的内容,这个一般会是在企业的内部web服务上面来实现,其实也很简单就两个参数

  语法:

location / {
auth_basic "closed site";
auth_basic_user_file conf/htpasswd;
}
  • auth_basic:语法:auth_basic string|off; 默认值:auth_basic off; 使用位置:http、server、location、limit_except
  • auth_basic_user_file:语法:auth_basic_user_file file;默认值:-;使用位置:http、server、location、limit_except (auth_basic_user_file参数后接认证密码文件)

2、设置实例:

  以www.brian.com虚拟主机为例,修改brian.conf配置文件:(添加红色标记位置)

[root@Nginx www_date]# cat brian.conf
server {
listen ;
server_name www.brian.com;
location / {
root html/brian;
index index.html index.htm;
auth_basic "brian training"; # 设置密码提示
auth_basic_user_file /opt/nginx/conf/htpasswd; # 密码文件路径
}
access_log logs/brian.log main gzip buffer=128k flush=5s;
error_page /50x.html;
location = /50x.html {
root html;
}
}

  生成认证密码文件:

[root@Nginx www_date]# yum -y install httpd          # htpasswd是Apache的命令 要安装httpd
[root@Nginx www_date]# htpasswd -bc /opt/nginx/conf/htpasswd brian brianzjz123 # 生成密码文件
Adding password for user brian
[root@Nginx www_date]# chmod 400 /opt/nginx/conf/htpasswd # 为了安全设置权限
[root@Nginx www_date]# chown nginx /opt/nginx/conf/htpasswd
[root@Nginx www_date]# cat /opt/nginx/conf/htpasswd              # 查看密码文件
brian:$apr1$DMJXj4Qp$IrP.gx0wTjV6m.OBgEnNm.

  检查语法:

[root@Nginx conf]# ../sbin/nginx -t
nginx: the configuration file /opt/nginx//conf/nginx.conf syntax is ok
nginx: configuration file /opt/nginx//conf/nginx.conf test is successful

  平滑重启:

[root@Nginx conf]# ../sbin/nginx -s reload

  windows浏览器测试:

Nginx的访问认证

  输入用户名密码:USER:brian Passwd:brianzjz123

Nginx的访问认证