本文内容:介绍一下Nginx访问控制与基础认证模块
- Nginx访问控制模块:ngx_http_access_module;该模块的作用是允许或限制一些客户端的访问。
- Nginx基础认证模块:ngx_http_auth_basic_module;该模块验证用户名和密码来限制对资源的访问。
ngx_http_access_module:
- access模块,主要用于访问控制,可以作用于http、server、location等层
- 按照顺序匹配规则从上到下,如果第一条规则匹配成功则执行,如果不匹配则向下继续匹配
- 示例说明:
server { listen 80; server_name mirrors.yyang.com; charset utf8,gbk; location / { root /repo; index index.html; # 访问控制 allow 192.168.10.0/24; deny all; } }
(此示例是说允许192.168.10.0网段的ip访问,其他全部拒绝)
- 官方示例:
location / { deny 192.168.1.1; allow 192.168.1.0/24; allow 10.1.1.0/16; allow 2001:0db8::/32; deny all; }
ngx_http_auth_basic_module:
- basic模块:可以对网页设置用户名密码,来确保数据的基本安全
- 该模块应用于http、server、location层
- 示例说明:
1.配置之前,我们先把需要用到的密码文件准备好,密码需要加密所以可以使用htpasswd或者openssl passwd工具生成;这里使用htpasswd工具,如果没有可以安装httpd-tools
包
[root@centos7 conf.d]# htpasswd -c -b /etc/nginx/ngx_passwd yyang 123123 Adding password for user yyang [root@centos7 conf.d]# cat /etc/nginx/ngx_passwd yyang:$apr1$AWmgs/ap$oPZf6XPBVttmzmTAcHGbq.
2.修改站点配置文件,配置basic模块信息,然后检查配置文件,重新加载配置文件(注意:我配置完会省略检查及重新加载配置步骤,如果有看的小伙伴不要忘记这两步)
server { listen 80; server_name mirrors.yyang.com; charset utf8,gbk; location / { root /repo; index index.html; autoindex on; autoindex_exact_size off; autoindex_localtime on; auth_basic "hello nginx"; auth_basic_user_file /etc/nginx/ngx_passwd; #可使用相对路径 } }
(以上basic配置一共两行,第一行注释信息,第二行是之前创建好的认证用户)
3.使用浏览器登陆测试
(此时在登陆网站已经需要进行用户名密码登陆)
此认证可以应用于某不想公开站点或网站后台等地方。
有兴趣也可以看看官方文档:https://nginx.org/en/docs/
这部分内容就到这了!