实战Nginx(3)-访问控制与用户认证模块及nginx内置状态页介绍
2014-12-27 20:53
591 查看
一.访问控制模块详解
Nginx的访问控制模块是ngx_http_access_module,实际上deny和allow指令属于ngx_http_access_module.我们想控制某个uri或者一个路径不让人访问,就需要依赖此模块.
1.模块安装:
编译安装nginx时不需要指定访问控制模块参数,这个模块已经内置在了nginx中,除非你安装中使用了--without-http_access_module。
2.模块指令:
3.官网实例:
解释:
从上到下的顺序,类似iptables。匹配到了便跳出。如上的例子先禁止了192.168.1.1,接下来允许了3个网段,其中包含了一个ipv6,最后未匹配的IP全部禁止访问.
二.用户认证模块详解
nginxd的用户认证模块是ngx_http_auth_basic_module,我们需要使用用户认证模块来控制用户访问特定页面.
1.模块安装
编译安装nginx时不需要指定访问控制模块参数,这个模块已经内置在了nginx中。
2.模块指令:
3.官网实例:
解释:
采用基本认证模块,认证名称是closed site,认证文件存放在是nginx配置文件路径下的conf/htpasswd。
三.对nginx的内置状态页的访问进行访问控制和用户认证。
1.nginx内置状态页介绍
nginx和php-fpm一样内建了一个状态页,对于想了解nginx的状态以及监控nginx非常有帮助。
2.启用nginx status配置并只允许172.16.0.0/16的网段访问
在虚拟主机里面加上location或者你希望能访问到的主机里面。
2..重启nginx
语法检查:
3.访问status页面:
4.nginx status详解
5.虚拟开启用户认证
6.创建用户认证文件
8.输入用户名密码访问nginx状态页:
至此,nginx的访问控制模块与用户认证模块及开启nginx内置状态页面的知识就介绍完毕了!
Nginx的访问控制模块是ngx_http_access_module,实际上deny和allow指令属于ngx_http_access_module.我们想控制某个uri或者一个路径不让人访问,就需要依赖此模块.
1.模块安装:
编译安装nginx时不需要指定访问控制模块参数,这个模块已经内置在了nginx中,除非你安装中使用了--without-http_access_module。
2.模块指令:
允许:allow 语法: Syntax:allow address | CIDR | unix: | all; 默认值: Default:— 配置段: Context:http, server, location, limit_except允许某个ip或者一个ip段访问.如果指定unix:,那将允许socket的访问.注意:unix在1.5.1中新加入的功能,如果你的版本比这个低,请不要使用这个方法。
禁止:deny 语法: Syntax:deny address | CIDR | unix: | all; 默认值: Default:— 配置段: Context:http, server, location, limit_except禁止某个ip或者一个ip段访问.如果指定unix:,那将禁止socket的访问.注意同上。
3.官网实例:
location / { deny 192.168.1.1; allow 192.168.1.0/24; allow 10.1.1.0/16; allow 2001:0db8::/32; deny all; }
解释:
从上到下的顺序,类似iptables。匹配到了便跳出。如上的例子先禁止了192.168.1.1,接下来允许了3个网段,其中包含了一个ipv6,最后未匹配的IP全部禁止访问.
二.用户认证模块详解
nginxd的用户认证模块是ngx_http_auth_basic_module,我们需要使用用户认证模块来控制用户访问特定页面.
1.模块安装
编译安装nginx时不需要指定访问控制模块参数,这个模块已经内置在了nginx中。
2.模块指令:
认证协议: 语法: Syntax:auth_basic string | off; 默认值: Default:auth_basic off; 配置段: Context:http, server, location, limit_except
认证文件: 语法: Syntax:auth_basic_user_file file; 默认值: Default:— 配置段: Context:http, server, location, limit_except
3.官网实例:
location / { auth_basic "closed site"; auth_basic_user_file conf/htpasswd; }
解释:
采用基本认证模块,认证名称是closed site,认证文件存放在是nginx配置文件路径下的conf/htpasswd。
三.对nginx的内置状态页的访问进行访问控制和用户认证。
1.nginx内置状态页介绍
nginx和php-fpm一样内建了一个状态页,对于想了解nginx的状态以及监控nginx非常有帮助。
2.启用nginx status配置并只允许172.16.0.0/16的网段访问
在虚拟主机里面加上location或者你希望能访问到的主机里面。
[root@www ~]# vim /etc/nginx/extra/nginx-vhost.conf server { listen *:80 default_server; server_name www.stu31.com; index index.html index.htm ; root /www/vhosts/www1; access_log /var/log/nginx/www.stu31.com.log main ; location /status { stub_status on; allow 172.16.0.0/16; deny all; } }
2..重启nginx
语法检查:
[root@www ~]# service nginx configtest nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful重启nginx
[root@www ~]# service nginx restart nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful Stopping nginx: [ OK ] Starting nginx: [ OK ]
3.访问status页面:
[root@www ~]# curl http://172.16.31.40/status Active connections: 1 server accepts handled requests 6 6 5 Reading: 0 Writing: 1 Waiting: 0
4.nginx status详解
active connections – 活跃的连接数量 server accepts handled requests — 总共处理了6个连接 , 成功创建6次握手, 总共处理了5个请求 reading — 读取客户端的连接数. writing — 响应数据到客户端的数量 waiting — 开启 keep-alive 的情况下,这个值等于 active – (reading+writing), 意思就是 Nginx 已经处理完正在等候下一次请求指令的驻留连接.
5.虚拟开启用户认证
[root@www ~]# vim /etc/nginx/extra/nginx-vhost.conf server { listen *:80 default_server; server_name www.stu31.com; index index.html index.htm ; root /www/vhosts/www1; access_log /var/log/nginx/www.stu31.com.log main ; location /status { stub_status on; auth_basic "Nginx-status"; auth_basic_user_file /etc/nginx/.htpasswd; allow 172.16.0.0/16; deny all; } }
6.创建用户认证文件
[root@www ~]# htpasswd -c -m /etc/nginx/.htpasswd status New password: Re-type new password: Adding password for user status [root@www ~]# ll -a /etc/nginx/.htpasswd -rw-r--r-- 1 root root 45 Dec 27 12:33 /etc/nginx/.htpasswd7.重启nginx服务
[root@www ~]# service nginx restart
8.输入用户名密码访问nginx状态页:
[root@www ~]# curl -u status:status http://172.16.31.40/status Active connections: 1 server accepts handled requests 4 4 4 Reading: 0 Writing: 1 Waiting: 0访问成功。
至此,nginx的访问控制模块与用户认证模块及开启nginx内置状态页面的知识就介绍完毕了!
相关文章推荐
- Nginx简介及用户认证、访问控制和反向代理配置
- nginx默认虚拟主机,用户认证,域名重定向,日志,静态文件不记录日志,防盗链,访问控制,php解析
- nginx的IP访问控制及用户认证
- Nginx之让用户通过用户名密码认证访问web站点
- Nginx实战基础篇五 如何让用户通过用户名密码认证访问我们的web站点
- Laravel 5.3 使用内置的 Auth 组件实现多用户认证功能以及登陆才能访问后台的功能的一种实现方法
- nginx介绍,流量及并发连接数限制,访问控制及ddos预防
- nginx添加用户访问控制
- nginx让用户通过用户名密码认证访问web页面
- Nginx实战之让用户通过用户名密码认证访问web站点
- elk模块x-pack简单替代,按照索引设置不同用户(nginx权限控制)
- Nginx Http认证 实现访问网站或目录密码认证保护 | 使用 HttpAuthBasicModule 模块
- Linux -- Samba-PAM模块应用-系统密码同步;用户与客户端访问控制;磁盘配额;回收站
- nginx让用户通过用户名密码认证访问web页面
- nginx让用户通过用户名密码认证访问web页面
- 启动Nginx目录浏览功能及 让用户通过用户名密码认证访问web站点
- Nginx提供网站服务应用包括(虚拟主机、用户访问控制、用户验证、nginx平滑升级、防盗链)的配置
- 基于basic认证机制配置httpd服务器拥有用户访问控制功能
- Nginx实战之让用户通过用户名密码认证访问web站点
- Nginx中配置用户服务器访问认证的方法示例