Nginx基础入门(三)Nginx访问限制、Nginx访问控制

8.Nginx访问限制

启动请求频率限制(ngx_http_limit_rep_module)

测试未限制情况下的访问

yum install -y httpd-tools

ab -n 100 -c 10 http:/a.com/ #发起100此请求分十次发送,向某个网站

启动限制

#定义
limit_req_zone $binary_remote_addr zone=req_zone:10m rate=1r/s;
(限制请求         二进制地址         限制策略的名称 占用10M空间 允许每秒1次请求)
#引用
limit_req zone=req_zone;
(引用      限制策略的名称)

#配置
#vim /etc/nginx/nginx.conf
http{
	limit_req_zone $binary_remote_addr zone=req_zone:10m rate=1r/s;
}
#vim /etc/nginx/conf.d/a.com
server{
	location / {

	limit_req zone=req_zone;
}
}
 

重启服务,并测试

ab -n 100 -c 10 http://a.com/ #这里可以看到有99个错误

观察错误日志

tail -f /var/log/nginx/error.log

启动连接频率限制(ngx_http_limit_conn_module)

目的:通过IP地址,限制连接(TCP)

启动连接频率限制

#vim /etc/nginx/nginx.conf
http{
	limit_req_zone $binary_remote_addr zone=req_zone:10m;
}
#vim /etc/nginx/con.d/a.com
server{
	location / {

	limit_conn conn_zone1;  
}
}
(单个IP,同时只允许有一个TCP连接)

测试

ab -n 100 -c 10 http://a.com/

效果不明显

了解不同的网站压力测试工具

9.Nginx访问控制

基于主机IP(ngx_http_access_module)

限制主机访问

vim /etc/nginx/conf.d/default.conf

server{
    allow 192.168.172.134;
    #allow 192.168.172.133;  写一个用另一个注释的去测试一下
    deny all;
}

测试:服务器无法访问

注意这里要把前面实验的限制给注释掉

server{
    location / {

    #limit_req zone=req_zone;
}
}

基于用户(ngx_http_auth_basic_module)

建立认证文件

#yum install -y httpd-tools
#htpasswd -cm /etc/nginx/conf.d/passwd user10  #会话密码
#htpasswd -m /etc/nginx/conf.d/passwd user20
#cat /etc/nginx/conf.d/passwd #观察口令文件是否生成

启动认证

#vim /etc/nginx/conf.d/a.com.conf
server{
	auth_basic "nginx access text!";
	auth_basic_user_file /etc/nginx/conf.d/passwd;;
}

重启服务器并验证,有错误的话去看一下日志

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值