码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • .NET 反向代理-YARP


    合集 - .NET(21)
    1..NET Core 环境搭建2022-03-162..Net Core IOC DI(依赖注入)2022-03-163..NET Core 读取配置技巧 - IOptions 接口2022-05-254..Net Core 依赖注入(IOC) 一些简单的使用技巧2022-05-065..Net Core 可为Null的类型2022-04-026..Net Core 配置文件 appsettings.json2022-03-257..NET 反向代理-YARP 部署Https(SSL)2022-09-218..NET 反向代理-YARP 根据域名转发2022-09-219..NET 7 来了!!!2022-09-19
    10..NET 反向代理-YARP2022-09-07
    11..Net Core 配置文件读取 - IOptions、IOptionsMonitor、IOptionsSnapshot2022-09-0212..NET Core 实现后台任务(定时任务)Longbow.Tasks 组件(三)2022-07-2313..NET Core 实现后台任务(定时任务)BackgroundService(二)2022-07-1314..NET Core 实现后台任务(定时任务)IHostedService(一)2022-07-0815..Net WebApi 中的 FromBody FromForm FromQuery FromHeader FromRoute2022-10-0716..NET 反向代理 YARP 代理 GRPC2022-09-2817..Net 7 C#11 原始字符串2022-09-2618..NET 反向代理 YARP 跨域请求 CORS2022-09-2619..NET 反向代理 YARP 自定义配置提供程序(Configuration Providers)2022-09-2520..NET 反向代理 YARP 通过编码方式配置域名转发2022-09-2421..NET 部署 多域名 Https(SSL)通过代码方式2022-09-23
    收起

    什么是 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 上;

    既然是一个库,首先第一步肯定是创建一个新项目,并且安装上这一个库:

    1、创建一个空的.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 节点以及配置项

    复制代码
    "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

    写在最后

    Bootstrap Blazor 官网地址:https://www.blazor.zone

      希望大佬们看到这篇文章,能给项目点个star支持下,感谢各位!

    star流程:

    1、访问点击项目链接:BootstrapBlazor   star

    2、点击star,如下图,即可完成star,关注项目不迷路:

     

    另外还有两个GVP项目,大佬们方便的话也点下star呗,非常感谢:

      BootstrapAdmin 项目地址:star
      https://gitee.com/LongbowEnterprise/BootstrapAdmin

      SliderCaptcha 项目地址:star
      https://gitee.com/LongbowEnterprise/SliderCaptcha

     

    交流群(QQ)欢迎加群讨论

           BA & Blazor ①(795206915)          BA & Blazor ②(675147445)

  • 相关阅读:
    mysql数据库重启、登录mysql数据库、通过命令执行mysql的sql脚本等命令
    【毕业设计】深度学习行人车辆流量计数系统 - 目标检测 python
    Vue搭建前端监控,采集用户行为的 N 种姿势
    C/C++ 动态规划 算法
    升讯威在线客服系统的并发高性能数据处理技术:为多线程处理同步数据
    C++ map和set
    defer-promise 源码解析(Npm library)
    生成器创建方式、浅拷贝与深拷贝区别与案例比较
    Mathtype插入word,以及mathtype在word上的卸载
    记一次 .NET某质量检测中心系统 崩溃分析
  • 原文地址:https://www.cnblogs.com/ysmc/p/16665788.html
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号