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/

  • 相关阅读:
    实例讲解虚拟机3种网络模式(桥接、nat、Host-only)
    期刊搜索问题——SCI、EI、IEEE和中文期刊
    面向对象分析与设计(C++)课堂笔记
    windows与VMware ubuntu虚拟机实现文件共享
    GDI+在绘制验证码中的使用
    【转】.net中快捷键的使用
    MD5加密“破解”在.NET平台实现最基本的理解
    UE4 Persona 骨架网格物体动画
    从零开始做3D地图编辑器 基于QT与OGRE
    TBB(Intel Threading Building Blocks)学习笔记
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/10066039.html
Copyright © 2011-2022 走看看