zoukankan      html  css  js  c++  java
  • skipper 内置的常用filters

    skipper 的filter 功能很强大,可做好多方便的扩展
    格式:

    all: * -> filter1 -> filter2 -> "http://127.0.0.1:1234/";

    setRequestHeader

    设置请求的header

    foo: * -> setRequestHeader("X-Passed-Skipper", "true") -> "https://backend.example.org";

    setResponseHeader

    设置response header

    foo: * ->setResponseHeader("X-Passed-Skipper", "true") -> "https://backend.example.org";

    类似的header 处理的filter

    appendRequestHeader,appendResponseHeader,dropRequestHeader,dropResponseHeader

    path filter

    modPath ,setPath,设置,或者进行path的替换

    重定向操作

    redirectTo,redirectToLower

    redir: PathRegex(/^/foo/bar/) -> redirectTo(302, "/foo/newBar") -> <shunt>;

    静态文件处理

    static

    acme: Host(/./) && Method("GET") && Path("/.well-known/acme-challenge/*")
        -> static("/.well-known/acme-challenge/", "/srv/www/dehydrated") -> <shunt>;

    http 状态处理

    status

    route1: Host(/^all401.example.org$/) -> status(401) -> <shunt>;

    内容压缩

    对于指定的内容进行压缩处理,同时可以设置压缩级别

    * -> compress("...", "image/tiff") -> "https://www.example.org"
    * -> compress(9, "image/tiff") -> "https://www.example.org"

    查询字符串处理

    setQuery,dropQuery,headerToQuery,queryToHeader

    setQuery("k", "v")
    dropQuery("k")
    headerToQuery("X-Foo-Header", "foo-query-param")
    queryToHeader("foo-query-param", "X-Foo-Header")

    内容处理

    randomContent 随机内容,inlineContent 返回一个内容

    * -> inlineContent("<h1>Hello</h1>") -> <shunt>
    * -> randomContent(42) -> <shunt>;

    延迟处理

    latency 请求延迟

    * -> latency(120) -> "https://www.example.org";

    带宽处理

    可以进行请求速度的控制

    * -> bandwidth(30) -> "https://www.example.org";

    流量拷贝

    tee

    * -> tee("https://audit-logging.example.org") -> "https://foo.example.org";

    认证安全

    basicAuth,oauth

    webhook

    webhook("https://custom-webhook.example.org/auth")

    cookie 处理

    requestCookie,responeCookie

    requestCookie("test-session", "abc")
    responseCookie("test-session", "abc", 31536000),

    跨域处理

    corsOrigin

    corsOrigin()
    corsOrigin("https://www.example.org")
    corsOrigin("https://www.example.org", "http://localhost:9001")

    限流处理的

    consecutiveBreaker,rateBreaker,clientRatelimit,ratelimit,clusterClientRatelimit,clusterRatelimit

    clientRatelimit(3, "1m", "auth")
    ratelimit(20, "1m")
    clusterClientRatelimit(10, "1h")

    审计日志处理

    auditLog,enableAccessLog

    api 使用监控

    apiUsageMonitoring,需要启动的时候启用

    skipper -enable-api-usage-monitoring -metrics-flavour prometheus

    参考资料

    https://opensource.zalando.com/skipper/reference/filters/

  • 相关阅读:
    (五)Ajax修改购物车单品数量
    (四)加入购物车和购物车操作
    flask blueprint
    2.1.2 BCD码
    2.1.1进位计数制
    1.2.3 计算机系统的层次结构
    flask的宏 macro
    计算机组成原理习题
    flask模版继承和include
    flask自定义过滤器
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/10066039.html
Copyright © 2011-2022 走看看