{"id":259736,"date":"2021-11-24T00:13:00","date_gmt":"2021-11-23T23:13:00","guid":{"rendered":"https:\/\/www.borncity.com\/blog\/?p=259736"},"modified":"2021-11-23T19:23:12","modified_gmt":"2021-11-23T18:23:12","slug":"yarp-yet-another-reverse-proxy","status":"publish","type":"post","link":"https:\/\/borncity.com\/blog\/2021\/11\/24\/yarp-yet-another-reverse-proxy\/","title":{"rendered":"YARP: Yet Another Reverse Proxy"},"content":{"rendered":"<p>Heute ein kurzer Infosplitter f\u00fcr Bastler unter der Blog-Leserschaft. Mit YARP (steht f\u00fcr Yet Another Reverse Proxy) steht ein kostenloses Framework bereit, um einen Reverse Proxy zu generieren. Das Framework wurde von Microsoft-Teams bereitgestellt.<\/p>\n<p><!--more--><\/p>\n<h2>Was ist ein Reverse Proxy?<\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"https:\/\/vg08.met.vgwort.de\/na\/d2415a8116e84647b500e24c36c5a3fc\" width=\"1\" height=\"1\"\/>Ein <a href=\"https:\/\/de.wikipedia.org\/wiki\/Reverse_Proxy\" target=\"_blank\" rel=\"noopener\">Reverse-Proxy<\/a> ist laut Wikipedia ein Proxy in einem Rechnernetz, der Ressourcen f\u00fcr einen externen Client von einem oder mehreren internen Servern holt. Die Umsetzung der Adresse ist atypisch und der Richtung des Aufrufes entgegengesetzt (deutsch \u201eumgekehrter Proxy\"). Die wahre Adresse des internen Zielsystems bleibt dem externen Client verborgen. Das unterscheidet ihn vom typischen (Forward-)Proxy, der mehreren Clients eines internen (in sich abgeschlossenen) Netzes den Zugriff auf ein externes Netz gew\u00e4hrt.<\/p>\n<h2>YARP: Yet Another Reverse Proxy<\/h2>\n<p>Ich bin auf Twitter \u00fcber nachfolgenden <a href=\"https:\/\/twitter.com\/binitamshah\/status\/1462775232423358468\" target=\"_blank\" rel=\"noopener\">Tweet<\/a> auf das betreffende Projekt aufmerksam geworden. YARP steht f\u00fcr <em>Yet Another Reverse Proxy<\/em> und ist ein Toolkit f\u00fcr die Entwicklung leistungsstarker HTTP-Reverse-Proxy-Anwendungen.<\/p>\n<p><a href=\"https:\/\/twitter.com\/binitamshah\/status\/1462775232423358468\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" title=\"YARP: Yet Another Reverse Proxy\" alt=\"YARP: Yet Another Reverse Proxy\" src=\"https:\/\/i.imgur.com\/hLpdTGE.png\"\/><\/a><\/p>\n<p>Die Geburt von YARP ist einer Initiative von Microsoft-Mitarbeitern zu verdanken. Es gab bei Microsoft eine Reihe interner Teams, die entweder einen Reverse-Proxy f\u00fcr ihren Dienst entwickelten oder sich nach APIs und Technologien f\u00fcr die Entwicklung eines solchen Proxys erkundigt hatten. Daher beschloss man, diese Teams zusammenzubringen, um an einer gemeinsamen L\u00f6sung zu arbeiten. Das Ganze m\u00fcndete im Projekt YARP. <\/p>\n<p>Bei der Analyse der bisherigen Projekte wurde klar, dass jedes dieser Projekte etwas abseits der ausgetretenen Pfade arbeitete. F\u00fcr manche Teams reichten die vorhandenen Proxys nicht, und die Anpassung dieser Proxys war mit hohen Kosten und laufenden Wartungs\u00fcberlegungen verbunden. Viele der vorhandenen Proxys wurden f\u00fcr die Unterst\u00fctzung von HTTP\/1.1 entwickelt. Da sich die Arbeitslasten jedoch dahingehend \u00e4ndern, dass diese auch gRPC-Verkehr umfassen, ben\u00f6tigen die Reverse-Proxies HTTP\/2-Unterst\u00fctzung, was eine wesentlich komplexere Implementierung erfordert. <\/p>\n<p>Durch den Einsatz von YARP k\u00f6nnen die Projekte das Routing- und Verarbeitungsverhalten anpassen, ohne das HTTP-Protokoll implementieren zu m\u00fcssen, hei\u00dft es in der Vorstellung von YARP auf <a href=\"https:\/\/microsoft.github.io\/reverse-proxy\/\" target=\"_blank\" rel=\"noopener\">dieser Seite<\/a>. YARP baut auf .NET auf und nutzt die Infrastruktur von ASP.NET und .NET (.NET Core 3.1, .NET 5 und .NET 6). Das Hauptunterscheidungsmerkmal von YARP ist, dass es so konzipiert wurde, dass es leicht angepasst und \u00fcber .NET-Code optimiert werden kann, um die spezifischen Anforderungen jedes Einsatzszenarios zu erf\u00fcllen. Eine Getting Started-Anleitung f\u00fcr YARP findet sich auf <a href=\"https:\/\/microsoft.github.io\/reverse-proxy\/articles\/getting-started.html\" target=\"_blank\" rel=\"noopener\">dieser Seite<\/a>. Ein Basis-Beispiel ist auf <a href=\"https:\/\/github.com\/microsoft\/reverse-proxy\/tree\/main\/samples\/BasicYarpSample\" target=\"_blank\" rel=\"noopener\">dieser Github-Seite<\/a> abrufbar<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Heute ein kurzer Infosplitter f\u00fcr Bastler unter der Blog-Leserschaft. Mit YARP (steht f\u00fcr Yet Another Reverse Proxy) steht ein kostenloses Framework bereit, um einen Reverse Proxy zu generieren. Das Framework wurde von Microsoft-Teams bereitgestellt.<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[426,7459],"tags":[4328,3836],"class_list":["post-259736","post","type-post","status-publish","format-standard","hentry","category-sicherheit","category-software","tag-sicherheit","tag-software"],"_links":{"self":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/posts\/259736","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/comments?post=259736"}],"version-history":[{"count":0,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/posts\/259736\/revisions"}],"wp:attachment":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/media?parent=259736"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/categories?post=259736"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/tags?post=259736"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}