.NET反向代理組件YARP介紹
什么是 YARP
YARP (另一個反向代理) 設計為一個庫,提供核心代理功能,你可以根據應用程序的特定需求進行自定義。
YARP 是使用 .NET的基礎架構構建在 .NET上的。
YARP 的主要不同之處在于,它被設計成可以通過 .NET 代碼輕松定制和調整,以滿足每個部署場景的特定需求。
同時,YARP是一個開源項目,托管于 Github 上,開源地址https://github.com/microsoft/reverse-proxy
什么是反向代理
反向代理服務器是代理服務器中的一種,它是在Web服務器之前實現的,并將客戶端請求定向到特定的后端服務器。通常,反向代理有助于提高Web服務器的安全性和性能,并防止過載。
反向代理作用
1.負載平衡。通常,擁有許多日常用戶的網站無法使用一個原始服務器處理所有流量。因此,網站會在不同后端服務器的群集之間均衡分配用戶流量。這些服務器管理同一網站的客戶端請求。
此外,反向代理可以避免任意單個服務器過載,因為所有站點的流量都必須通過反向代理。只有這樣,流量才能訪問特定的后端服務器。
2.保護免受黑客攻擊。如果網站使用反向代理,則其服務器的地址將被隱藏,黑客只能訪問代理IP地址。這對黑客和惡意實體起到了一定的防護。
例如:對使用反向代理的網站進行分布式拒絕服務(DDoS)攻擊要困難得多。DDoS攻擊是通過破壞主機服務與互聯網的連接,從而使用戶無法訪問該網站。
當網站使用反向代理時,黑客將只能攻擊這些代理,這將作為附加的安全層。
3.緩存。緩存使網站可以有效地重用以前獲得的數據。這是將文件副本存儲在緩存中以便更迅速地訪問的過程。這使網站和應用程序可以更高效地運行。
反向代理服務器可用于緩存網站的內容并提高網站的性能。
如何使用YARP
YARP是基于.Net架構的一個庫,其提供了核心代理功能,而又因為 .Net Core 是跨平臺的,所以可以應用在 windows 于 linux 上;
既然是一個庫,首先第一步肯定是創(chuàng)建一個新項目,并且安裝上這一個庫:
1、創(chuàng)建一個空的.Net Core 項目
2、在NuGet包管理器中,安裝Yarp.ReverseProxy
或者使用dotnet 命令安裝
dotnet add package Yarp.ReverseProxy --version 1.1.1
3、在Program.cs 中增加配置,.Net 5 及以下版本在 Startup.cs 中添加
Program.cs
var reverseProxyConfig = builder.Configuration.GetSection("ReverseProxy"); builder.Services.AddReverseProxy().LoadFromConfig(reverseProxyConfig); app.UseEndpoints(endpoints => { endpoints.MapReverseProxy(); });
Startup.cs
- ConfigureServices
services.AddReverseProxy().LoadFromConfig(Configuration.GetSection("ReverseProxy"));
- Configure
app.UseEndpoints(endpoints => { endpoints.MapReverseProxy(); });
4、在 appsetting 中添加ReverseProxy 節(jié)點以及配置項
"ReverseProxy": { "Routes": { "route1": { "ClusterId": "yarp", "Match": { "Path": "{**catch-all}" } } }, "Clusters": { "yarp": { "LoadBalancingPolicy": "RoundRobin", "Destinations": {"blazor": { "Address": "https://www.blazor.zone/" }, "baidu": { "Address": "https://www.baidu.com/" } } } } }
大功告成,可以愉快玩耍了!
寫在最后
Bootstrap Blazor 官網地址:https://www.blazor.zone
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關內容請查看下面相關鏈接
相關文章
.NET獲取客戶端的操作系統(tǒng)版本、瀏覽器版本和IP地址
這篇文章主要為大家詳細介紹了.NET如何獲取客戶端的操作系統(tǒng)版本、瀏覽器版本和IP地址,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-11-11ASP.Net PlaceHolder、Panel等控件未實現INamingContainer,導致FindContro
這2天在開發(fā)中發(fā)現,如果在new的Panel中使用FindControl,會出現找不到控件的情況2009-06-06Asp.net TextBox的TextChanged事件使用介紹
動態(tài)創(chuàng)建的控件是如何加載視圖狀態(tài),還提到ProcessPostData方法的調用,這里我就用TextBox的TextChanged事件來說說視圖數據的加載以及事件的觸發(fā)2012-12-12