当前位置:首页 > nginx > 正文

nginx控制指定接口不能访问

  • nginx
  • 2024-06-04 18:03:41
  • 3440

⑴nginx怎么限制客户端访问频次与访问次数
如何确定某个IP在一定时间内的访问量是一个令人头疼的问题,尤其是在应对恶意DDoS攻击时。 其中CC攻击(ChallengeCollapsar)是DDOS(分布式拒绝服务)的一种,也是一种常见的网站攻击方式。 作为对方的支撑,他已经筋疲力尽,直至倒下。
CC攻击通常利用有限数量的IPS向服务器重复发送数据来达到攻击的目的。 。
HttpLimitReqModul是一个限制单位时间连接数的模块。 一旦并发连接数超过一定数量,就会返回503错误。
HttpLimitConnModul用于限制单个IP的并发连接数,使用limit_zone和limit_conn指令
这两个模块的区别在于前者限制一段时间内的连接数;同时这个连接也受到限制。 并发连接实例
3nginx设置设置
HttpLimitReqModul限制一定时间段内同一IP的实例数量
http{
...
#定义limit_req_zoneallips,指定用于收集会话,大小为10M内存,
#使用$binary_remote_addr作为key,平均每秒请求数为20,
#1M可以存储16000个状态,网络value必须是整数,
#如果模式是每两秒请求一次,可以设置为30r/m
limit_req_zone$binary_remote_addrzone=allips:10mrate=20r/s;
...
servo{
...
location{
...
#固定任何IP,请求次数不超过20个每秒桶槽数5
#br/br/>#表示突发,如果允许前19秒请求,2、3、4秒,25秒5个请求。
#但是如果第一秒有25个请求,第二秒超过20个请求,就会返回503错误。
#nodelay,如果不设置该选项,将严格使用平均速率来限制请求数,
#当第一秒有25个请求时,第二秒会处理5个请求第二秒,
#nodelay设置,执行第一秒将发送25个请求。
limit_reqzone=allipsburst=5nodelay;
...
}
...
}
...
}


⑵Nginx无法访问是什么原因?

此问题通常出现在Nginx配置中。 该错误是由于Nginx版本问题导致的。

Nginx1.15之前,HTTPS服务配置如下:

server{

监听443;

server_name网站域名;

sslon;

ssl_certificateSSL证书;

ssl_certificate_keySSL证书私钥;

ssl_ciphers加密算法;

ssl_protocols加密协议;

ssl_pre fer_server_cipherson;

}

但是如果在Nginx1.15启动时设置了这个配置,这是一个错误。 Nginx有时会报错,因为SSLON等配置不再支持,应该删除。 但是删除那行代码并重新启动Nginx后,你会发现浏览器访问页面时会显示“ERR_SSL_PROTOCOL_ERROR”错误。

所以在Nginx1.15版本下我们需要配置如下:

server{

listen443ssl;

server_name网站域名。 name;

ssl_certificateSSL证书;

ssl_certificate_keySSL证书私钥;

ssl_ciphers加密算法;

ssl_protocols加密协议;

ssl_pre fer_server_ciphersison;

}

重启Nginx后,我们的HTTPS服务就正常了。 另外,如果您的网站包含IPv6,那么当网站链接到证书时,所有IP,包括ip6和ip4,都必须附加到证书中。