这篇文章主要为大家展示了“Web应用服务器如何实现并发访问控制”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Web应用服务器如何实现并发访问控制”这篇文章吧。
创新互联成立与2013年,是专业互联网技术服务公司,拥有项目网站建设、成都网站制作网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元高唐做网站,已为上家服务,为高唐各地企业和个人服务,联系电话:18982081108前端负载一台,作用是客户端发起一条http请求到前端负载均衡服务器,然后负载层根据web server已定义的轮询算法,把各消息原封不动的转发到后段的各web server上,压力这块不是很大,因为都转到后端了。
但是有个问题,客户端在发起一条http请求到前端负载层的时候,一分钟内这个请求数会达到惊人的几十万条不等(项目业务需要,客户端自身需要把金额等数据同步到各项目服务器上),基本是客户端对服务端发起的同步请求,还有其它的对web站点的访问请求。然后可能有些同步请求不是必须也不需要那么频繁或者是在这个时间内根本不需要把数据同步上来。固鉴于此就想着看能不能在前端负载层做个并发控制,对这个传过来的客户端IP做个操作。当这个IP请求次数大于内部设定的某个值的时候就让它拒绝访问服务器,这样的话服务器在处理消息的时候也会更加有效率,也能起到一定的宫级作用。想了想应该可以实现,所以才有了下面的脚本。记录下来供各位小伙伴参考下......
#!/bin/bash #Author:You Names #Contact Mail:455436588@qq.com #Version:3.0 #Company:COMPANY #Create time:2019-07-17 17:31:58 #Description:Nginx server concurrency restrictions Max=100000 CFS=/usr/local/nginx/conf/nginx.conf LOGS=/usr/local/nginx/logs/access.log #执行循环体 #过滤出access.log日志里所定义的'$remote_addr'地址。重复的打印出来并排序; cat $LOGS | awk '{print $2}' | sort -n | uniq -c | sort -rn | head -n 10 | while read line do #定义变量$IP,打印出是哪个IP; IP=`echo "$line" | awk '{print $2}'` #定义变量$Count,打印出这个IP出现的次数; Count=`echo "$line" | awk '{print $1}'` #定义变量$Docs,值为nginx的配置文件; Docs=${cat $CFS} #定义变量$CFG,看配置文件里有没有这个IP; CFG=`echo "$Docs" | grep "${IP}"` #判断,如果$Count的值大于$Max的值,并且在$CFG里为空,不是这也不是那,执行替换并写入到$Docs指定location下做deny操作,重载并continue; if [[ $Count -gt $Max ]] && [[ $CFG == " " ]] && [[ $IP != "IP ADDRESS" ]] && [[ $IP != "IP ADDRESS" ]] then sed -i '/location \/ {/a\deny '${IP}';' $CFS sed -i '/location \/pads {/a\deny '${IP}';' $CFS sed -i '/location \~\* \\\.ios\$ {/a\deny '${IP}';' $CFS sed -i '/location \~\* \\\.android\*\$ {/a\deny '${IP}';' $CFS /usr/local/nginx/sbin/nginx -t && /usr/local/nginx/sbin/nginx -s reload && echo "SUCCESS!!" else continue fi done
以上是“Web应用服务器如何实现并发访问控制”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。