Nginx登录认证

Nginx登录认证教程

Nginx 中,http_auth_basic_module 模块实现访问必须输入用户名和密码,在用户名和密码正确的情况下才可以访问,这为我们一些重要资源访问增添了一道安全锁。

auth_basic

语法

auth_basic string | off;

默认

auth_basic off;

使用环境

http, server, location, limit_except

说明

这里的 string 是会在网页提示的信息。

auth_basic_user_file

语法

auth_basic_user_file file;

使用环境

http, server, location, limit_except

说明

这里的 file 是存储的用户名和密码的信息,这里的 file 的文件格式如下:

name1:password1 name2:password2:comment name3:password3

该文件,可以通过 htpasswd 工具生成。

Nginx登录认证

我们首先,使用 htpasswd 工具,生成一个密码认证的文件,具体命令如下:

htpasswd -c /etc/nginx/auth_conf haicoder

这里的 haicoder 就是认证的用户名,生成完毕后,如下图所示:

33_nginx密码认证.png

现在,我们使用 ls 命令,查看生成文件,执行完毕后,如下图所示:

34_nginx密码认证.png

我们看到,密码认证文件已经存在了,现在,我们使用 vim 打开 nginx 的默认配置路径,具体命令如下:

vim /etc/nginx/conf.d/default.conf

我们执行如上命令,打开配置文件,接着,我们在 server 下面增加一个 location 配置,具体配置如下:

location / { root /opt/app/code; index index.html index.htm;}location ~ ^/haicoder.html { root /opt/app/code; auth_basic "Pls input your password!"; auth_basic_user_file /etc/nginx/auth_conf; index index.html;}

配置完毕后,如下图所示:

35_nginx密码认证.png

现在,我们重新加载配置文件,具体命令如下:

nginx -s reload

现在,我们使用浏览器访问 nginx,浏览器输出如下:

36_nginx密码认证.png

我们看到,我们的配置已经生效了,我们现在的访问,需要我们输入用户名和密码了,现在,我们输入正确的用户名和密码,此时浏览器输出如下:

37_nginx密码认证.png

我们看到,可以正常访问了。

Nginx登录认证总结

在 Nginx 中,http_auth_basic_module 模块实现访问必须输入用户名和密码,在用户名和密码正确的情况下才可以访问,这为我们一些重要资源访问增添了一道安全锁。