部分内容参考:http://www.abc3210.com/2013/web_04/82.shtml
首先说一下遇到这个问题是因为网站被攻击,阿里云报警,想到要限制一下访问频率,而不是限制ip(限制ip的方案稍后给出)。nginx连接资源被吃空返回状态码是502,添加本方案限制后返回599,与正常状态码区别开。
步骤如下:
首先nginx.conf里面添加如下内容:
map $http_x_forwarded_for $clientRealIp {
"" $remote_addr;
~^(?P<firstAddr>[0-9\.]+),?.*$ $firstAddr;
}
###safe setting to limit the request number per second
limit_req_status 599;
limit_req_zone $clientRealIp zone=allips:70m rate=5r/s;
session池大小70M,如果限制的ip很多 那可以调小,如果限制的ip很少,那可访问的ip很多则要调大
每秒5个请求,这个也是根据情况调节的,5个是比较合适或者说偏大一点点的。
然后修改www.xxoo.com.conf(这是lnmp针对每个虚拟主机都有个配置文件)server里面,location上面添加如下一行:
limit_req zone=allips burst=5 nodelay;
这样重启nginx就可以写个脚本测测并发了。
如下提供一个python并发脚本:
import threading
import time,urllib2
url = 'http://sf.gg/'
def worker():
try:
response = urllib2.urlopen(url)
print response.getcode()
except urllib2.HTTPError, e:
print e.code
for i in range(2000):
t = threading.Thread(target=worker)
t.start()
其中2000和http://sf.gg/都是可以修改的,然后执行 python *.py > out 就可以分析out文件里面的状态码的分布了,如果599特别多说频率限制起到作用了。
相关推荐
主要介绍了在阿里云服务器上配置CentOS+Nginx+Python+Flask环境的教程,值得一提的是这里的方案用Nginx作反向代理而使用Gunicorn作wsgi服务器,需要的朋友可以参考下
nginx+uwsgi+python架构
vps,用nginx+tornado+supervisord+python部署多站点网站, 主要:nginx做反向代理服务器,负载均衡,torndao做后端服务器 用supervisor管理多进程
CentOS+nginx+uwsgi+Python 多站点环境搭建.docx
nginx+uwsgi+mysql+python 环境详细搭建过程以及过程内出现问题分析。
Nginx+Uwsgi+Django(python3)+Vue部署,一步步实现。网上找了N多篇文章都没成功,特意记录,以免其他同学踩坑
1、基于vue+python+flask+uwsgi+nginx+mysql的外包项目网站项目源码.zip 2、该资源包括项目的全部源码,下载可以直接使用! 3、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为...
Nginx+tomcat+redis软负载均衡需要的一整套资源,还包括了JDK,依赖包等文件
主要介绍了在Windows系统上搭建Nginx+Python+MySQL环境的教程,文中使用flup中间件及FastCGI方式连接,需要的朋友可以参考下
自己做的一个nginx+tomcat+redis完成session共享小例子,包括所需jar,适合初学者,希望大家一起学习交流
-vue+python+flask+uwsgi+nginx+mysql.zip毕业设计-外包项目网站 -vue+python+flask+uwsgi+nginx+mysql.zip毕业设计-外包项目网站 -vue+python+flask+uwsgi+nginx+mysql.zip毕业设计-外包项目网站 -vue+python+flask...
nginx+lua+redis通过匹配客户端ip进行灰度发布
详细说明了windows服务器nginx+tomcat+mysql部署及配置(配置阿里云后台安全组,配置域名)很适合新手学习 附件中包含: 1.操作说明文档 2.操作录屏 3.安装所用到的软件安装包 1)Windows Server 2019 数据中心版 ...
nginx+lua+redis 集群 连接插件和脚本,原来插件是没有密码功能 故 修改了一下 k可以自己下载使用
Nginx+KeepAlived+Tomcat负载架构 这个可以实现tomcat集群,并且可以使服务器主备机进行切换。如果其中一台机器当机,会自动切换到另一台机器。客服端感受不到服务器当掉。非常实用。
keepalived+nginx+tomcat+redis+mysql所需的jdk包,之前csdn不让上传超过200m得只能分开上传。
RabbitMQ+Zookeeper+Dubbo+Nginx+Mysql+Redis搭建.txtRabbitMQ+Zookeeper+Dubbo+Nginx+Mysql+Redis搭建.txtRabbitMQ+Zookeeper+Dubbo+Nginx+Mysql+Redis搭建.txt
在centos安装django的方法,纯手写的。最后还有关闭centos7防火墙的方法
自己手动搭建的nginx+springboot+zookeeper+dubbo+mybatis+dubboadmin,nginx做前后端分离,负载均衡,springboot+zookeeper+dubbo做后端接口,mybatis为数据库持久化层,dubboadmin做监控中心,解压直接用idea导入...
nginx+apache+mysql+php+memcached+squid搭建门户网站