本篇文章為大家展示了使用nginx怎么實現(xiàn)一個分布式限流功能,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。
網(wǎng)站制作、成都網(wǎng)站建設(shè)的關(guān)注點不是能為您做些什么網(wǎng)站,而是怎么做網(wǎng)站,有沒有做好網(wǎng)站,給創(chuàng)新互聯(lián)公司一個展示的機會來證明自己,這并不會花費您太多時間,或許會給您帶來新的靈感和驚喜。面向用戶友好,注重用戶體驗,一切以用戶為中心。
首先部署一個對外暴露接口的程序
我這里部署的是一個spring boot 項目 里面暴露了如下接口, 很簡單
暴露了一個 get 請求返回 hello world 的restful 接口.
將此程序部署到 linux 服務(wù)器上. 部署步奏不再贅述, 自行百度 spring boot 部署 即可.
在此我向大家推薦一個架構(gòu)學(xué)習(xí)交流群。交流學(xué)習(xí)群號:575745314 里面會分享一些資深架構(gòu)師錄制的視頻錄像:有Spring,MyBatis,Netty源碼分析,高并發(fā)、高性能、分布式、微服務(wù)架構(gòu)的原理,JVM性能優(yōu)化、分布式架構(gòu)等這些成為架構(gòu)師必備的知識體系。還能領(lǐng)取免費的學(xué)習(xí)資源,目前受益良多
創(chuàng)建一個名稱為 nginx.conf 的 nginx 配置文件
創(chuàng)建一個 名叫 nginx.conf 的配置文件, 完整內(nèi)容如下
配置文件中限流部分解釋:
如上, nginx 的限流配置 , 只有兩行代碼.
第一行:
limit_req_zone : 是限流聲明.
$binary_remote_addr: 表示根據(jù)客戶端 ip 來 限流, 比如 上面的限流配置 限制每個客戶端ip的請求頻率為一秒一次, 你如果耍流氓一秒兩次, 就會被限流 會返回一個http 503 錯誤給你.
zone=perip: 表示 用 perip 這個 名稱 來標(biāo)識 這行限流配置, 待會 會通過 perip 這個名稱來引用這行限流配置(也就是說限流配置是可以定義為多個的)
10m: 表示存儲客戶端ip的空間為10MB, 1MB 大概存儲1萬多ip , 10 MB 大概 10多萬Ip , 參考解釋: http://www.ttlsa.com/nginx/ng... 在這篇文章中搜索 binary_remote_addr 即可定位相關(guān)解釋.
rate=1r/s: 表示頻率是 一秒一個請求.
第二行:
表示在 myserver 這個集群上, 使用 名稱為 perip 的限流配置
用docker 部署 nginx
將上一步創(chuàng)建的 nginx.conf 配置文件, 拷貝到linux 目錄 , /root/nginx/ 下 (目錄可以任意), 然后 一個docker 命令部署好 nginx 環(huán)境
這里暴露的是 8080 端口, 通過 8080 端口可以訪問到 nginx 配置中的負(fù)載均衡節(jié)點, 即 192.168.10.253:8090 ip端口, 這個 ip端口對應(yīng)的就是 , 第一步創(chuàng)建部署的 hello world 程序.
用代碼訪問 第一步定義的 helloworld 接口
我這里是 一秒 執(zhí)行 10次 get 請求, 已經(jīng)大于了 nginx中配置的 rate=1r/s 一秒一次的請求, 所以會看到 503 報錯, 如下.
上述內(nèi)容就是使用nginx怎么實現(xiàn)一個分布式限流功能,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
新聞名稱:使用nginx怎么實現(xiàn)一個分布式限流功能
URL鏈接:http://www.chinadenli.net/article40/gjcjho.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、用戶體驗、電子商務(wù)、動態(tài)網(wǎng)站、外貿(mào)建站、自適應(yīng)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)