reverse-proxy config-files

{
  // Base URLs the server listens on, must be configured independently of the routes below
  // 服务器侦听的基本URL必须独立于下面的路由进行配置
  //"Urls": "http://localhost:5000;https://localhost:5001",
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      // Uncomment to hide diagnostic messages from runtime and proxy
      // 取消对运行时和代理隐藏诊断消息的注释

      // "Microsoft": "Warning",
      // "Yarp" : "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "ReverseProxy": {
    // Routes tell the proxy which requests to forward
    //取消对运行时和代理隐藏诊断消息的注释

    "Routes": {
      "minimumroute": {
        // Matches anything and routes it to www.example.com
        //匹配任何内容并将其路由到www.example。通用域名格式

        "ClusterId": "minimumcluster",
        "Match": {
          "Path": "{**catch-all}"
        }
      },

      // 匹配/something/*并路由到“allclusterprops”
      "allrouteprops": {
        // matches /something/* and routes to "allclusterprops"
        //其中一个集群的名称
        "ClusterId": "allclusterprops", // Name of one of the clusters 

        //数字越小,优先级越高
        "Order": 100, // Lower numbers have higher precedence 

        //"Anonymous" 策略名称或“默认”、“匿名”
        "Authorization Policy": "Anonymous", // Name of the policy or "Default", 

        //要应用于此路由的公司名称或“默认”、“禁用”
        "CorsPolicy": "Default", // Name of the CorsPolicy to apply to this route or "Default", "Disable"

        "Match": {
          //要使用ASP进行匹配的路径。NET语法。
          "Path": "/something/{**remainder}", // The path to match using ASP.NET syntax. 

          //要匹配的主机名(未指定)为any
          "Hosts": [ "www.aaaaa.com", "www.bbbbb.com" ], // The host names to match, unspecified is any

          //匹配的HTTP方法,USSpecified就是全部
          "Methods": [ "GET", "PUT" ], // The HTTP methods that match, uspecified is all

          //要匹配的标题(未指定)是任意的
          "Headers": [ // The headers to match, unspecified is any
            {
              //标题的名称
              "Name": "MyCustomHeader", // Name of the header
              //匹配是针对这些值中的任何一个进行的
              "Values": [ "value1", "value2", "another value" ], // Matches are against any of these values

              //或“HeaderPrefix”、“Exists”、“Contains”、“NotContains”
              "Mode": "ExactHeader", // or "HeaderPrefix", "Exists" , "Contains", "NotContains"
              "IsCaseSensitive": true
            }
          ],
          //要匹配的查询参数(未指定)为any
          "QueryParameters": [ // The query parameters to match, unspecified is any
            {
              //查询参数的名称
              "Name": "MyQueryParameter", // Name of the query parameter
              //匹配是针对这些值中的任何一个进行的
              "Values": [ "value1", "value2", "another value" ], // Matches are against any of these values
              "Mode": "Exact", // or "Prefix", "Exists" , "Contains", "NotContains"
              "IsCaseSensitive": true
            }
          ]
        },
        //自定义扩展可以使用的键值对列表
        "MetaData": { // List of key value pairs that can be used by custom extensions
          "MyName": "MyValue"
        },
        //变换列表。有关更多详细信息,请参阅Transforms文章
        "Transforms": [ // List of transforms. See the Transforms article for more details
          {
            "RequestHeader": "MyHeader",
            "Set": "MyValue"
          }
        ]
      }
    },

    //集群告诉代理在哪里以及如何转发请求
    // Clusters tell the proxy where and how to forward requests
    "Clusters": {
      "minimumcluster": {
        "Destinations": {
          "example.com": {
            "Address": "https://www.baidu.com"
          }
        }
      },
      "allclusterprops": {
        "Destinations": {
          "first_destination": {
            "Address": "https://contoso.com"
          },
          "another_destination": {
            "Address": "https://10.20.30.40",
            //主动健康检查的覆盖
            "Health": "https://10.20.30.40:12345/test" // override for active health checks
          }
        },
        //或者“第一字母顺序”、“随机”、“循环”、“最少任务”
        "LoadBalancingPolicy": "PowerOfTwoChoices", // Alternatively "FirstAlphabetical", "Random", "RoundRobin", "LeastRequests"
        "SessionAffinity": {
          "Enabled": true, // Defaults to 'false'
          "Policy": "Cookie", // Default, alternatively "CustomHeader"
          "FailurePolicy": "Redistribute", // default, Alternatively "Return503Error"
          "Settings": {
            "CustomHeaderName": "MySessionHeaderName" // Defaults to 'X-Yarp-Proxy-Affinity`
          }
        },
        "HealthCheck": {
          "Active": { // Makes API calls to validate the health. 
            "Enabled": "true",
            "Interval": "00:00:10",
            "Timeout": "00:00:10",
            "Policy": "ConsecutiveFailures",
            "Path": "/api/health" // API endpoint to query for health state
          },
          "Passive": { // Disables destinations based on HTTP response codes
            "Enabled": true, // Defaults to false
            "Policy": "TransportFailureRateHealthPolicy", // Required
            "ReactivationPeriod": "00:00:10" // 10s
          }
        },

        //用于联系目的地的HttpClient实例的配置
        "HttpClient": { // Configuration of HttpClient instance used to contact destinations
          "SSLProtocols": "Tls13",
          "DangerousAcceptAnyServerCertificate": false,
          "MaxConnectionsPerServer": 1024,
          "EnableMultipleHttp2Connections": true,
          //如何解释标题值中的非ASCII字符
          "RequestHeaderEncoding": "Latin1" // How to interpret non ASCII characters in header values
        },

        //向目的地发送请求的选项
        "HttpRequest": { // Options for sending request to destination
          "ActivityTimeout": "00:02:00",
          "Version": "2",
          "VersionPolicy": "RequestVersionOrLower",
          "AllowResponseBuffering": "false"
        },

        //自定义键值对
        "MetaData": { // Custom Key value pairs
          "TransportFailureRateHealthPolicy.RateLimit": "0.5", // Used by Passive health policy
          "MyKey": "MyValue"
        }
      }
    }
  }
}

配置文件 (microsoft.github.io)

posted @ 2022-03-24 20:48  我们的家乡  阅读(166)  评论(0)    收藏  举报