国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

nginx中基于jsessionid的限速策略

IT那活兒 / 2708人閱讀
nginx中基于jsessionid的限速策略

公司某系統(tǒng)經(jīng)常出現(xiàn)短時(shí)間內(nèi)同一用戶(hù)大量并發(fā)訪問(wèn)的情況,疑似爬蟲(chóng)行為,該行為經(jīng)常導(dǎo)致應(yīng)用節(jié)點(diǎn)連接超時(shí)頻發(fā)的問(wèn)題。由于業(yè)務(wù)代碼層對(duì)用戶(hù)的限速和限制并發(fā)的能力有限,因此決定采用F5后添加nginx反向代理,通過(guò)nginx的limit_req_zone模塊進(jìn)行限速,通過(guò)limit_conn_zone模塊來(lái)進(jìn)行限制并發(fā)。

首先利用nginx的內(nèi)置變量$http_x_forwarded_for獲取遠(yuǎn)端的訪問(wèn)IP,以該變量來(lái)進(jìn)行訪問(wèn)限速。具體訪問(wèn)策略如下:

http {
    include mime.types;
    default_type application/octet-stream;
    ......(常規(guī)配置忽略)
    #gzip on;
    #限速策略
    limit_req_zone $http_x_forwarded_for zone=req:100m rate=10r/m;
    limit_conn_zone $http_x_forwarded_for zone=reqconn:100m;

    upstream shsnc {
      sticky;
      server IP:PORT;
      server IP:PORT;
      server IP:PORT;
      }
    server {
       listen 80;
       ......(常規(guī)配置忽略)
        #僅對(duì)訪問(wèn)頻繁的頁(yè)面加以限速,aa表示頁(yè)面URL的關(guān)鍵字段)
       location ~ .*(aa|bb).* {
        proxy_pass http://shsnc;
        limit_req zone=reqzone burst=5;
        limit_conn reqconn 10;

      }
}

由于用戶(hù)是通過(guò)統(tǒng)一的出口IP來(lái)訪問(wèn)業(yè)務(wù),以上配置僅對(duì)出口IP限速,無(wú)法對(duì)單個(gè)用戶(hù)訪問(wèn)進(jìn)行限速,因此導(dǎo)致用戶(hù)訪問(wèn)比較多時(shí),個(gè)別用戶(hù)出現(xiàn)無(wú)法訪問(wèn)業(yè)務(wù)的情況。因此,改用$http_cookie的方式來(lái)進(jìn)行限速。經(jīng)過(guò)查看,發(fā)現(xiàn)http_cookie變量中的信息量過(guò)多,格式如下所示:

JSESSIONID=xxxxxxxxxxxxxxxxxxxxxxxx;
Hm_lvt_fxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx;
BIGipxxxxxxxxxxxxxxxxxxxx=xxxxxxxxxxxxxxxxxxxxx;
route=xxxxxxxxxxxxxxxxxxxxxxxxxxx;

從上面的格式分析,使用JSESSIONID的值去進(jìn)行限速比較合理。因此,需要從http_cookie變量中截取JSESSIONID的值作為限速的依據(jù)。最終確定方案如下:

http {
    include mime.types;
    default_type application/octet-stream;
    ......(常規(guī)配置忽略)
    #gzip on;
    #限速策略
    limit_req_zone $jsvalue zone=req:100m rate=10r/m;
    limit_conn_zone $jsvalue zone=reqconn:100m;

    upstream shsnc {
      sticky;
      server IP:PORT;
      server IP:PORT;
      server IP:PORT;
      }
    server {
       listen 80;
       ......(常規(guī)配置忽略)
       #截取設(shè)置限速jsessionid字符串
        set $jsvalue "";
        if ( $http_cookie ~* "JSESSIONID=(.+?)(?=;)" ) {
           set $jsvalue $1;
        }
        #僅對(duì)訪問(wèn)頻繁的頁(yè)面加以限速,aa表示頁(yè)面URL的關(guān)鍵字段)
       location ~ .*(aa|bb).* {
        proxy_pass http://shsnc;
        limit_req zone=reqzone burst=5;
        limit_conn reqconn 10;

      }
}

最終,通過(guò)截取jsessionid的值到達(dá)了限速的策略,也解決了內(nèi)網(wǎng)用戶(hù)通過(guò)統(tǒng)一出口IP訪問(wèn)業(yè)務(wù)相應(yīng)影響的問(wèn)題。


END


更多精彩干貨分享

點(diǎn)擊下方名片關(guān)注

IT那活兒

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/129886.html

相關(guān)文章

  • 幾種限流技術(shù)

    摘要:下面是幾種常見(jiàn)的限流技術(shù)一限流算法常用的限流算法有令牌桶,漏桶令牌桶令牌桶算法是網(wǎng)絡(luò)流量整形和速率限制中最常使用的一種算法。 就秒殺接口來(lái)說(shuō),當(dāng)訪問(wèn)頻率或者并發(fā)請(qǐng)求超過(guò)其承受范圍的時(shí)候,這時(shí)候我們就要考慮限流來(lái)保證接口的可用性,以防止非預(yù)期的請(qǐng)求對(duì)系統(tǒng)壓力過(guò)大而引起的系統(tǒng)癱瘓。通常的策略就是拒絕多余的訪問(wèn),或者讓多余的訪問(wèn)排隊(duì)等待服務(wù)。下面是幾種常見(jiàn)的限流技術(shù) 一、限流算法常用的限流算...

    Warren 評(píng)論0 收藏0
  • 可能是 nginx 限速最容易理解說(shuō)明

    摘要:在生產(chǎn)環(huán)境中,建議不要使用連接數(shù)限制單個(gè)連接的帶寬限制不易過(guò)低像迅雷這種下載器的限速,可能需要?jiǎng)e的辦法注文中部分內(nèi)容參考自關(guān)于的限速模塊 nginx 限速研究匯報(bào) 寫(xiě)在前面 ? ? ? ?這兩天服務(wù)器帶寬爆了,情況如下圖:showImg(https://segmentfault.com/img/bVUXj3?w=1884&h=352); 出于降低帶寬峰值的原因,我開(kāi)始各種瘋狂的研究ng...

    gyl_coder 評(píng)論0 收藏0
  • 可能是 nginx 限速最容易理解說(shuō)明

    摘要:在生產(chǎn)環(huán)境中,建議不要使用連接數(shù)限制單個(gè)連接的帶寬限制不易過(guò)低像迅雷這種下載器的限速,可能需要?jiǎng)e的辦法注文中部分內(nèi)容參考自關(guān)于的限速模塊 nginx 限速研究匯報(bào) 寫(xiě)在前面 ? ? ? ?這兩天服務(wù)器帶寬爆了,情況如下圖:showImg(https://segmentfault.com/img/bVUXj3?w=1884&h=352); 出于降低帶寬峰值的原因,我開(kāi)始各種瘋狂的研究ng...

    Anchorer 評(píng)論0 收藏0
  • 八步部署NGINX Plus API網(wǎng)關(guān)

    摘要:作為一組獨(dú)立的微服務(wù)之一被實(shí)現(xiàn)并作為一個(gè)單獨(dú)的進(jìn)行發(fā)布。該配置將暴露所有由網(wǎng)關(guān)發(fā)布的,入口位于,用協(xié)議加密保護(hù)。由網(wǎng)關(guān)發(fā)布的所有的所有后端服務(wù)均在中被定義。與瀏覽器不同,網(wǎng)關(guān)并不能向客戶(hù)端發(fā)送帶有新的命名的重定向。 歡迎大家前往騰訊云+社區(qū),獲取更多騰訊海量技術(shù)實(shí)踐干貨哦~ 本文來(lái)自云+社區(qū)翻譯社,作者ArrayZoneYour Nginx往往是構(gòu)建微服務(wù)中必不可缺的一部分,從本文中...

    awesome23 評(píng)論0 收藏0
  • nginx限速不得不說(shuō)事之連接數(shù)限制技巧

    摘要:但是,你的連接數(shù)限制配置為允許單個(gè)連接數(shù),單個(gè)連接數(shù)最大帶寬為。就降低單個(gè)連接數(shù)帶寬吧要知道大家誰(shuí)沒(méi)事會(huì)用瀏覽器自帶下載器下載呢注本文只探討限速模塊在不同業(yè)務(wù)下的限速彩蛋偶爾發(fā)現(xiàn),將連接數(shù)限制為迅雷不能高速下載了。 nginx 內(nèi)置模塊限速怎么使用就不多說(shuō)了,今天來(lái)說(shuō)說(shuō)連接數(shù)和單個(gè)連接數(shù)限速的事。 場(chǎng)景:A公司有100人,A公司只有一個(gè)公網(wǎng)IP,假設(shè)A公司可能有100個(gè)人同時(shí)在下載你的...

    neroneroffy 評(píng)論0 收藏0
  • nginx限速不得不說(shuō)事之連接數(shù)限制技巧

    摘要:但是,你的連接數(shù)限制配置為允許單個(gè)連接數(shù),單個(gè)連接數(shù)最大帶寬為。就降低單個(gè)連接數(shù)帶寬吧要知道大家誰(shuí)沒(méi)事會(huì)用瀏覽器自帶下載器下載呢注本文只探討限速模塊在不同業(yè)務(wù)下的限速彩蛋偶爾發(fā)現(xiàn),將連接數(shù)限制為迅雷不能高速下載了。 nginx 內(nèi)置模塊限速怎么使用就不多說(shuō)了,今天來(lái)說(shuō)說(shuō)連接數(shù)和單個(gè)連接數(shù)限速的事。 場(chǎng)景:A公司有100人,A公司只有一個(gè)公網(wǎng)IP,假設(shè)A公司可能有100個(gè)人同時(shí)在下載你的...

    remcarpediem 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<