久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Web應用服務器如何實現并發訪問控制

142次閱讀
沒有評論

共計 1716 個字符,預計需要花費 5 分鐘才能閱讀完成。

這篇文章主要為大家展示了“Web 應用服務器如何實現并發訪問控制”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓丸趣 TV 小編帶領大家一起研究并學習一下“Web 應用服務器如何實現并發訪問控制”這篇文章吧。

前端負載一臺,作用是客戶端發起一條 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 應用服務器如何實現并發訪問控制”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注丸趣 TV 行業資訊頻道!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-25發表,共計1716字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 桐城市| 屏山县| 施甸县| 普宁市| 邯郸县| 土默特右旗| 晋州市| 图木舒克市| 乌拉特前旗| 四平市| 莎车县| 永昌县| 林芝县| 樟树市| 阿城市| 陕西省| 苏尼特左旗| 江北区| 克山县| 灵山县| 行唐县| 高碑店市| 奉新县| 九龙坡区| 龙陵县| 永宁县| 甘肃省| 栾城县| 台北县| 木里| 门头沟区| 怀仁县| 玉田县| 达州市| 遂川县| 乌海市| 武威市| 恩施市| 宝清县| 平武县| 溧阳市|