.NET 反向代理-YARP

什么是 YARP

YARP (另一個反向代理) 設計為一個庫,提供核心代理功能,你可以根據應用程序的特定需求進行自定義。

YARP 是使用 .NET的基礎架構構建在 .NET上的。
YARP 的主要不同之處在于,它被設計成可以通過 .NET 代碼輕松定制和調整,以滿足每個部署場景的特定需求。

同時,YARP是一個開源項目,托管于 Github 上,開源地址?https://github.com/microsoft/reverse-proxy

什么是反向代理

反向代理服務器是代理服務器中的一種,它是在Web服務器之前實現的,并將客戶端請求定向到特定的后端服務器。通常,反向代理有助于提高Web服務器的安全性和性能,并防止過載。

e8aac926b026a417885d33e717933e3c.png

反向代理作用

1.負載平衡。通常,擁有許多日常用戶的網站無法使用一個原始服務器處理所有流量。因此,網站會在不同后端服務器的群集之間均衡分配用戶流量。這些服務器管理同一網站的客戶端請求。

此外,反向代理可以避免任意單個服務器過載,因為所有站點的流量都必須通過反向代理。只有這樣,流量才能訪問特定的后端服務器。

2.保護免受黑客攻擊。如果網站使用反向代理,則其服務器的地址將被隱藏,黑客只能訪問代理IP地址。這對黑客和惡意實體起到了一定的防護。

例如:對使用反向代理的網站進行分布式拒絕服務(DDoS)攻擊要困難得多。DDoS攻擊是通過破壞主機服務與互聯網的連接,從而使用戶無法訪問該網站。

當網站使用反向代理時,黑客將只能攻擊這些代理,這將作為附加的安全層。

3.緩存。緩存使網站可以有效地重用以前獲得的數據。這是將文件副本存儲在緩存中以便更迅速地訪問的過程。這使網站和應用程序可以更高效地運行。

反向代理服務器可用于緩存網站的內容并提高網站的性能。

如何使用YARP

YARP是基于.Net架構的一個庫,其提供了核心代理功能,而又因為 .Net Core 是跨平臺的,所以可以應用在 windows 于 linux 上;

既然是一個庫,首先第一步肯定是創建一個新項目,并且安裝上這一個庫:

1、創建一個空的.Net Core 項目

a13cad36c49f349fbf7de18966586630.png

2、在NuGet包管理器中,安裝?Yarp.ReverseProxy

2993c8ec45a76d068ded4af70427517a.png

?或者使用?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 節點以及配置項

"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/"}}}}
}

大功告成,可以愉快玩耍了!感謝各位大佬的閱讀!下一個文章將會介紹配置文件中的配置項,以及怎么根據域名進行反向代理

原文鏈接:https://www.cnblogs.com/ysmc/p/16665788.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/282530.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/282530.shtml
英文地址,請注明出處:http://en.pswp.cn/news/282530.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

JavaScript 開發的45個經典技巧

2019獨角獸企業重金招聘Python工程師標準>>> 前言:此篇譯文在各網站均有標注原創的聲明,譯者名字已不可考,暫為佚名 JavaScript是一個絕冠全球的編程語言,可用于Web開發、移動應用開發(PhoneGap、Appcelera…

PHP循環輸出二維數組

目的: 將二維數組中的每一個元素輸出 首先定義一個二維數組 //定義數組 $arr array(array(北京,上海,深圳,廣州),array(黑龍江,吉林,遼寧,江蘇) ); 一 for循環輸出 1.1 直接輸出 //for循環遍歷數組 for($i 0; $i < count($arr); $i) {for($j 0; $j < count($arr[…

回歸遠程 - 云原生IDE是IaC從表象觸達本質的必然選擇 | SmartIDE

作者&#xff1a;徐磊&#xff0c;開源云原生SmartIDE創始人、LEANOSFT創始人/首席架構師/CEO&#xff0c;微軟最有價值專家MVP/微軟區域技術總監Regional Director&#xff0c;華為云最有價值專家。從事軟件工程咨詢服務超過15年時間&#xff0c;為超過200家不同類型的企業提供…

android獲取手機機型、廠商、deviceID基本信息

/*** 系統工具類*/ public class SystemUtil {/*** 獲取當前手機系統語言。** return 返回當前系統語言。例如&#xff1a;當前設置的是“中文-中國”&#xff0c;則返回“zh-CN”*/public static String getSystemLanguage() {return Locale.getDefault().getLanguage();}/***…

題目1362:左旋轉字符串(Move!Move!!Move!!!)

題目1362&#xff1a;左旋轉字符串&#xff08;Move!Move!!Move!!!&#xff09; 時間限制&#xff1a;2 秒 內存限制&#xff1a;32 兆 特殊判題&#xff1a;否 提交&#xff1a;2306 解決&#xff1a;961 題目描述&#xff1a;匯編語言中有一種移位指令叫做循環左移&#xff0…

PHP簡單實現遞歸

//遞歸 //斐波那契數列 function digui($n) {if($n > 2) {$arr[$n] digui($n-1) digui($n-2);return $arr[$n];} else {return 1;} }//使用 echo digui(5); 總結 : 首先應該想到出口是什么,將出口放在else條件里 例如,本例斐波那契數列中,出口是前兩個數是1,也就是數組下…

(三)Controller接口控制器詳解(二)

一、AbstractController&#xff08;簡單控制器&#xff09; AbstractController使用方法&#xff1a; 首先讓我們使用AbstractController來重寫第二章的HelloWorldController&#xff1a; public class HelloWorldController extends AbstractController {Overrideprotected M…

[BZOJ]1095 Hide捉迷藏(ZJOI2007)

一道神題&#xff0c;兩種神做法。 Description 捉迷藏 Jiajia和Wind是一對恩愛的夫妻&#xff0c;并且他們有很多孩子。某天&#xff0c;Jiajia、Wind和孩子們決定在家里玩捉迷藏游戲。他們的家很大且構造很奇特&#xff0c;由N個屋子和N-1條雙向走廊組成&#xff0c;這N-1條走…

Spring4-自動裝配Beans-通過注解@Autowired在構造方法上

1.創建Maven項目,項目名稱springdemo19,如圖所示2.配置Maven,修改項目中的pom.xml文件,修改內容如下<project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation"http://mave…

15個開源的工業軟件

出品 | OSC開源社區&#xff08;ID&#xff1a;oschina2013)不同的工業流程&#xff0c;需要不同的工業軟件。此前&#xff0c;我們已經介紹了面向研發設計環節的開源軟件&#xff08;詳情查看&#xff1a;20 個開源的工業設計軟件&#xff09;&#xff0c;今天就來介紹一下面向…

PHP開發中保證接口安全

模擬客戶端請求:<?php namespace Home\Controller; use Think\Controller;class ClientController extends Controller{const TOKEN API;//模擬前臺請求服務器api接口public function getDataFromServer(){//時間戳$timeStamp time();//隨機字符串$randomStr $this ->…

MySQL遠程訪問報錯解決

2019獨角獸企業重金招聘Python工程師標準>>> 我之前的一篇博客講了MySQL配置遠程訪問的方法&#xff0c;但是可能配置了賬戶以后還是不能訪問&#xff0c;這可能是防火墻的原因&#xff0c;在CentOS里&#xff0c;我們修改一下防火墻設置就可以了 1. 進入防火墻配置…

jssdk.php

/*** Created by PhpStorm.* Date: 17/8/19* Time: 下午2:24*/ class JSSDK {private $appId;private $appSecret;public function __construct($appId, $appSecret) {$this->appId $appId;$this->appSecret $appSecret;}public function getSignPackage() {$jsapiTick…

GNU/Linux與開源文化的那些人和事

一、計算機的發明 世上本無路&#xff0c;走的人多了&#xff0c;就有了路。世上本無計算機&#xff0c;琢磨的人多了……沒有計算機&#xff0c;一切無從談起。 三個人對計算機的發明功不可沒&#xff0c;居功至偉。阿蘭圖靈&#xff08;Alan Mathison Turing&#xff09;、阿…

PHP使用PHPMailer發送郵件

1. 首先下載phpmailer插件,并將插件復制到目錄下 下載地址: http://download.csdn.net/download/m_nanle_xiaobudiu/10261269 2. home/view/user/mail_chck.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><…

python學習記錄2

一、兩個模塊&#xff08;sys和os&#xff09; 1 #!/usr/bin/env python2 # _*_ coding: UTF-8 _*_3 # Author:taoke4 import sys5 print(sys.path)#打印環境變量6 print(sys.argv[0])#當前文件相對路徑,sys.argv是一個列表&#xff0c;第一個元素為程序本身的相對路徑&#xf…

cordova-config.xml配置應用圖標

1. <icon src"res/icon/ios/browser.png"/> 2.規格&#xff1a; iphone平臺一般要求3種規格的圖片&#xff1a;1x、2x、3x&#xff0c;也是就Icon.png、Icon2x.png、Icon3x.png. 注意&#xff1a;iOS所有圖標的圓角效果由系統生成&#xff0c;給到的圖標本身不…

將 Figma 設計轉換為 .NET MAUI Graphics 代碼

原文鏈接&#xff1a;https://github.com/jsuarezruiz/figma-to-maui-graphics原文作者&#xff1a;jsuarezruiz翻譯&#xff1a;沙漠盡頭的狼(谷歌翻譯加持)&#xff0c;翻譯別扭&#xff0c;建議直接閱讀原文使用FigmaSharp.Maui.Graphics將Figma設計轉換為 .NET MAUI Graphi…

Android之上下文context

Context&#xff0c;中文直譯為“上下文”&#xff0c;SDK中對其說明如下&#xff1a; 1、它描述的是一個應用程序環境的信息&#xff0c;即上下文。 2、該類是一個抽象(abstract class)類&#xff0c;Android提供了該抽象類的具體實現類。 3、通過它我們可以獲取應用程序的資…

論壇中,無限分類的原理

1.創建數據表 CREATE TABLE category( cat_id SMALLINT unsigned not null auto_increment comment 類別id, cat_name VARCHAR(30) not null default comment 類別名稱, par_id SMALLINT unsigned not null default 0 comment 類別父id, PRIMARY KEY (cat_id) )enginemyisam …