Nginx设置身份验证
2018-01-29 16:08
393 查看
在某些情况下,需要对某些内容的访问进行限制,在Nginx中也提供了这样的限制措施,以下是几种常见的限制措施:
1.访问身份验证
在Nginx的插件模块中有一个模块ngx_http_auth_basic_module可以要求用户进行身份认证,默认情况下nginx已经安装了这个模块 。可通过命令./nginx -V查看是否有此模块。
安装后只需要进行以下步骤即可实现:
首先创建密钥文件:
配置nginx:
配置完成后重启nginx服务即可。正常情况下会出现以下输入框输入设置的用户名和密码即可:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202011/02/56018065f50e503bd75a4e1618e63da6.png)
2.限制IP访问
在nginx.conf中添加以下配置可实现全局限制,也可将此配置放到server中或location中,放到server中只针对站点进行限制,location中只针对匹配的url进行限制:
可添加多条allow或deny,deny all结尾表示除了上面allow的其他都禁止,deny all;deny 一定要加一个ip,否则直接跳转到403,下面的规则将不起作用。
3.限制某些ip在同一时间段内的访问次数
nginx可以通过HttpLimitReqModul和HttpLimitZoneModule配置来限制ip在同一时间段的访问次数.
HttpLimitReqModul用来限制连单位时间内连接数的模块,使用limit_req_zone和limit_req指令配合使用来达到限制。一旦并发连接超过指定数量,就会返回503错误。HttpLimitConnModul用来限制单个ip的并发连接数,使用limit_zone和limit_conn指令.
这两个模块的区别前一个是对一段时间内的连接数限制,后者是对同一时刻的连接数限制.
园子里有作者已经有过详细介绍,请参考:https://www.cnblogs.com/aoniboy/p/4730354.html
1.访问身份验证
在Nginx的插件模块中有一个模块ngx_http_auth_basic_module可以要求用户进行身份认证,默认情况下nginx已经安装了这个模块 。可通过命令./nginx -V查看是否有此模块。
安装后只需要进行以下步骤即可实现:
首先创建密钥文件:
yum install -y httpd-tools htpasswd -bc /usr/nginx/conf/htpasswd.users username password cat /usr/nginx/conf/htpasswd.users
配置nginx:
server { listen 80; server_name 192.168.1.1; auth_basic "Restricted Access"; auth_basic_user_file /usr/nginx/conf/htpasswd.users; location / { proxy_pass http://192.168.1.2:5601; } }
配置完成后重启nginx服务即可。正常情况下会出现以下输入框输入设置的用户名和密码即可:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202011/02/56018065f50e503bd75a4e1618e63da6.png)
2.限制IP访问
在nginx.conf中添加以下配置可实现全局限制,也可将此配置放到server中或location中,放到server中只针对站点进行限制,location中只针对匹配的url进行限制:
allow 192.168.1.1; #允许的IP deny 192.168.1.2; deny all;
可添加多条allow或deny,deny all结尾表示除了上面allow的其他都禁止,deny all;deny 一定要加一个ip,否则直接跳转到403,下面的规则将不起作用。
3.限制某些ip在同一时间段内的访问次数
nginx可以通过HttpLimitReqModul和HttpLimitZoneModule配置来限制ip在同一时间段的访问次数.
HttpLimitReqModul用来限制连单位时间内连接数的模块,使用limit_req_zone和limit_req指令配合使用来达到限制。一旦并发连接超过指定数量,就会返回503错误。HttpLimitConnModul用来限制单个ip的并发连接数,使用limit_zone和limit_conn指令.
这两个模块的区别前一个是对一段时间内的连接数限制,后者是对同一时刻的连接数限制.
园子里有作者已经有过详细介绍,请参考:https://www.cnblogs.com/aoniboy/p/4730354.html
相关文章推荐
- 使用nginx代理kibana并设置身份验证
- 使用nginx代理kibana并设置身份验证
- 使用nginx代理kibana并设置身份验证
- 求助:WCF 安全之自定义的用户名/密码身份验证 中的identity dns怎么设置
- Nginx集群之基于Redis的WebApi身份验证
- 解决: 关于配置局域网内通过一台WEB服务器连接到域服务器进行身份验证的IP设置
- SQLSERVER2005的混和身份验证模式的设置以及SA登陆问题
- nginx 访问目录身份验证
- Visio Studio 2010 C# WinForm对Report报表身份验证的设置
- 建立用户身份验证机制和个性化设置总结(1)
- AFNetworking 请求HTTPS时 SSL的身份验证设置
- 设置sql server 2008 r2的身份验证模式
- sql server 2005/2008设置sql身份验证和sa空密码
- Nginx服务器设置网站验证访问的方法
- 通过基本设置和xp网络级别身份验证设置使xp可以远程登录win8系统
- Web.Config 文件中的设置配置网页身份验证
- Web项目身份验证设置为Windows时如何将项目部署到IIS进行调试
- sql server 2005/2008 设置 sql身份验证 和 sa空密码(像sql2000一样使用)(转载)
- 在设置iis windows身份验证,出错:登录失败:用户帐户限制。可能的原因包括不允许空密码登录时间限制或强制的策略限制。
- SQLSERVER2005的混和身份验证模式的设置以及SA登陆问题