世界上最伟大的投资就是投资自己的教育

全场限时 5 折

首页Nginx
随风 · 练气

Nginx 学习笔记系列文章之 Nginx 之 auth_basic 模块使用 (七)

随风发布于2652 次阅读

1. 介绍

在这一篇文章nginx 之编译第三方模块 (六)中介绍了如何编译模块,而我们演示了如何编译nginx-module-vts这个监控 nginx 服务器运行情况的模块。只要用户在浏览器输入http://your_ip/status,就可以访问监控页面。这样很不安全,因为任何人都可以访问这个页面。如果有一个方法能让访问这个页面的时候输入用户名和密码,那就好了。而 nginx 的源码提供了ngx_http_auth_basic_module这个模块,它可以来解决这个问题。

ngx_http_auth_basic_module它提供了最基本的 http 认证,这是 http 协议支持的,它会弹出一个框让你输入用户名和密码,只有用户名和密码输入正确了才能访问,这样就能防止/status被任何人访问了。

2. 使用

这个模块是默认就编译进 nginx 的,所以可以直接拿来使用。

首先我们得有一个机制是来存放用户名和密码,ngx_http_auth_basic_module是使用文件作为存储介质的,用户名是明文存储,而密码是加密之后再存储,这样在认证框输入的用户名和密码必须和文件的信息匹配才能认证成功。

我们用htpasswd这个命令来生成存放用户名和密码的文件,所以需要先安装它。

$ sudo apt-get install apache2-utils

我们先添加第一个用户hfpp2012

$ sudo htpasswd -c /etc/nginx/.htpasswd hfpp2012
New password: 
Re-type new password: 
Adding password for user hfpp2012

键入两遍相同的密码就可以了。

-c参数表示会创建/etc/nginx/.htpasswd这个文件,以后再添加用户就不用指定这个参数了,比如添加yinsigan用户。

$ sudo htpasswd /etc/nginx/.htpasswd yinsigan

现在我们需要在配置文件中打开 http basic auth 认证。

server {
        ...
        location /status {
            auth_basic "Restricted";
            auth_basic_user_file /etc/nginx/.htpasswd;
            vhost_traffic_status_display;
            vhost_traffic_status_display_format html;
        }
}

这样就可以了,看下效果图。

完结。

本站文章均为原创内容,如需转载请注明出处,谢谢。

0 条回复
暂无回复~~
相关小书
nginx教程

nginx教程

最全面,最深入的nginx入门到精通的教程

发表于

喜欢
统计信息
    学员: 29066
    视频数量: 1973
    文章数量: 489

© 汕尾市求知科技有限公司 | Rails365 Gitlab | Qiuzhi99 Gitlab | 知乎 | b 站 | 搜索

粤公网安备 44152102000088号粤公网安备 44152102000088号 | 粤ICP备19038915号

Top