Nginx设置身份验证
在某些情况下,需要对某些内容的访问进行限制,在Nginx中也提供了这样的限制措施,以下是几种常见的限制措施:
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 ;
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服务即可。正常情况下会出现以下输入框输入设置的用户名和密码即可:
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
最新文章
- ASP.NET MVC异常处理
- 一、HTML和CSS基础--HTML+CSS基础课程--第5部分
- java抛出异常是怎么回事?
- Android使用ZXing生成带图片的二维码
- Spring注解和配置方式
- 程序语言的奥妙:算法解读 ——读书笔记
- AxWindowsMediaPlayer创建、添加播放列表(C#)
- silverlight visifire控件图表制作——silverlight 后台方法画图
- script 两则
- Linux Ubuntu从零开始部署web环境及项目 -----快捷键设置(四)
- 出现Unreachable code问题的原因
- Django报错:OSError: raw write() returned invalid length 4 (should have been between 0 and 2)
- Esptouch移植xamarin记要
- winform datagridview在添加全选checkbox时提示:不能设置 selected 或 selected 既不是表 Table 的 DataColumn 也不是 DataRelation。
- Spark面试题
- python网络编程初识
- 前序遍历and中序遍历and后序遍历
- Jmeter笔记:响应断言详解
- HDU - 4454: Stealing a Cake (圆上三分)
- 【jdk】使用wget下载jdk8
热门文章
- 010 有顺序的Map的实现类:TreeMap和LinkedHashMap
- (一)surging 微服务框架使用系列之surging 的准备工作rabbitmq安装
- SpringBoot Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServletContainerFactory bean.
- 如何在外部终止一个pengding的promise对象
- thinkphp发送邮件需要开启什么设置
- dede文章插入分页符不起作用,编辑器中出现分页符,导致文章显示不全
- MySQL Block Nested Loop and Batched Key Access Joins(块嵌套循环和批量Key访问连接)
- CCF系列之数位之和(201512-1)
- python 与rabbitmq
- 查看 Apache并发请求数及其TCP连接状态【转】