Nginx用户访问及密码验证

Nginx用户访问及密码验证

在 nginx 下,提供了 ngx_http_auth_basic_module 模块实现让用户只有输入正确的用户名密码才允许访问web内容。默认情况下,nginx 已经安装了该模块。所以整体的一个过程就是先用第三方工具设置用户名、密码(其中密码已经加过密),然后保存到文件中,接着在 nginx 配置文件中根据之前事先保存的文件开启访问验证。

生成密码可以使用 htpasswd

1、编辑配置文件

[root@web01 extra]# vim www.conf

        server_name  www.etiantian.org etiantian.org;

server {

        listen       80;

        server_name  www.etiantian.org etiantian.org;

        location / {

          auth_basic            "Please input password";    #这个是提示信息

          auth_basic_user_file /application/nginx/conf/htpasswd;  #存放密码文件的路径

        root html/www;

        index index.html index.htm;

        }

        access_log logs/access_www.log main;

}

2、使用htpasswd生成密码文件

[root@web01 extra]# which htpasswd  #查看是否安装htpasswd

/usr/bin/which: no htpasswd  

安装httpd,因为htpasswd是Apache的Web服务器内置工具,用于创建和更新储存用户名、域和用户基本认证的密码文件。

[root@web01 extra]# yum -y install httpd  #安装httpd

[root@web01 extra]# which htpasswd  #查看是否安装

[root@web01 extra]# rpm -qf /usr/bin/htpasswd  #查看是否安装

[root@web01 extra]# htpasswd -cb /application/nginx/conf/htpasswd ceshi 123789  #生成密码文件

[root@web01 extra]# chmod 400 /application/nginx/conf/htpasswd  #为了安全设置文件权限

3、检查语法并重启

[root@web01 extra]# /application/nginx/sbin/nginx -t

[root@web01 extra]# /application/nginx/sbin/nginx -s reload

1. 浏览器查看

(1)输入www.etiantian.org-->输入用户名密码-->登录成功

 

 

(2)不输入用户名或密码,则报错401未授权


猜你喜欢

转载自blog.csdn.net/qq_41816540/article/details/81008217