yarp是微軟開源的乙個用.net實現的反向**工具包,github庫就叫reverse-proxy(反向**)(吐槽一下微軟起名字233333)由於公司技術歷史原因,原來的閘道器規則是_ _ _這樣子的。nuget包preview9之前都叫microsoft.reverseproxy,preview10變成yarp.reverseproxy了
放上鏈結
想要換個新閘道器,又要相容舊的這種規則,調研過目前幾種api閘道器發現,apisix支援這種操作(用$1佔位符匹配引數)。
但是目前暫時不需要功能那麼強大的api閘道器,而且不是.net技術實現的,出問題不好排查。
這是剛好發現yarp這個東東,剛剛好符合需求,就拿來試試。
"reverseproxy": "},}
],"clusters": }}
}}
需要在startup.cs中配置yarp
public iconfiguration configuration
public startup(iconfiguration configuration)
public void configureservices(iservicecollection services)
// enable endpoint routing, required for the reverse proxy
// register the reverse proxy routes
); }
第一步,翻原始碼,找到配置的實體物件,照搬微調一遍,大概就是下圖那麼多個了。
第二步,實現iproxyconfigprovider和iproxyconfig,基本都是照搬原本**微整形一下233333
由於原始碼裡面icertificateconfigloader是internal型別,只能自己重新抄一次並實現了。
第三步,用efcore持久化到資料庫
搞個dbcontext,把實體全部加進去,配置好關係之後,codefirst直接生成資料庫哈哈哈哈
第四步,搞幾個management管理資料(curd)
第五步,實現一下配置熱更新
使用ichangetoken介面實現乙個efcorereloadtoken
在instoreconfigprovider的getconfig用changetoken.onchange繫結一下事件
public iproxyconfig getconfig()
return _config;
}
_strore是efcorereverseproxystore物件,裡面包含efcorereloadtoken物件;
public class efcorereverseproxystore : ireverseproxystore
//more code....
}
第六步,再寫個擴充套件方法替換原本的iproxyconfigprovider
最後一步,在startup中用一下
services.addreverseproxy()
.loadfromefcore();
第一步,搞個控制器,加上簡單curd介面
第二步,找前端小姐姐要個介面對接一下api
搞乙個測試webapi
加乙個集群
加乙個路由
用postman測一測
好了正常使用,搞定。
路由匹配可以用多個佔位符自由組合,然後在pathpattern轉換裡面可以使用這些引數
測試一下效能1000個併發100000個請求
歡迎吐槽提意見或者一起改進哈哈哈
reverseproxy.store
soul閘道器學習sofa 外掛程式體驗(下)
首先回憶下程式沒有進入sofaplugin的可能原因 外掛程式狀態沒有開啟直接沒有執行直接 首先確認了狀態已經開啟,debug發現我的外掛程式鏈裡面並沒有sofa外掛程式 懷疑沒有初始化sofaplugin 再次看了波官網檢查了下閘道器日誌 發先輸出日誌裡面sofa外掛程式沒有被載入 找到原因 在閘...
初用Empire體驗
git clone cd empire setup install.sh 安裝後,在其目錄執行.empire 檔案即可,開啟後如下圖 empire 包含三個部分,乙個是modules即自身的一些模組,乙個是listernes即監聽類似msf的exploit multi handler模組,乙個是ag...
雲儲存閘道器和OSSFS的使用體驗
最近有需要幫助朋友在阿里雲上搭建一套可以用檔案介面訪問物件儲存的基礎架構,在阿里雲上搜尋了一下,發現了阿里雲上有兩個產品都支援類似的功能 雲儲存閘道器和ossfs。雲儲存閘道器 csg 是一款幫助客戶在現有本地應用程式 基礎設施和資料儲存與阿里雲之間實現無縫整合的儲存服務。通過可在本地和雲上部署的相...