Spring Cloud Gateway 配置資訊

2021-10-01 19:25:42 字數 4589 閱讀 9418

了解gateway的配置才可以理解使用gateway可以做什麼事情,才能更好地應用在產品開發中。

predicates主要起的作用是:配置路由匹配請求的規則

http 相關

path

配置對於請求路徑的匹配規則

yml配置,多個引數用逗號隔開

- path = /aa/**,/bb/**
json配置

}
cookie

配置對cookie中值的匹配,第乙個為key,第二個為value。下例匹配cookie設定chocolate:ch.p的請求

yml配置

- cookie = chocolate,ch.p
json配置

}
header

匹配http請求中設定的內容,http-header設定x-request-id:\d+可以匹配,第二個引數第二個引數是正規表示式

yml配置

- header = x-request-id,\d+
json配置

}
host

匹配http請求host,匹配所有host為**.somehost.com的請求

yml配置

- host = **.somehost.com
json配置

}
method

匹配http請求頭

yml配置

- method = get
json配置

}
query

匹配http請求中的查詢引數,請求中攜帶param1=value的請求可以匹配

yml配置

- query = param1,value
json配置

}
remoteaddr

匹配請求中的remoteaddr

yml配置

- remoteaddr = 192.168.1.1/24
json配置

}
remoteaddr

匹配請求中的remoteaddr

yml配置

- remoteaddr = 192.168.1.1/24
json配置

}
時間 相關

after

設定時間之後可以訪問

yml配置

- after = 2017-01-20t17:42:47.789-07:00[america/denver]
json配置

}
before

設定時間之前可以訪問

yml配置

- before = 2017-01-20t17:42:47.789-07:00[america/denver]
json配置

}
權重相關

權重相關

至少兩組以上路由可以配置權重路由,配置後會根據權重隨機訪問幾個路由

yml配置

- weight = service1,80
json配置

}
路徑重寫

yml配置

- rewritepath = /path/(?.*), /$\
json配置

"}}
修改請求頭

yml配置

- addrequestheader = x-request-foo,bar
json配置

}
修改請求引數

yml配置

- addrequestparameter = foo,bar
json配置

}
修改響應引數

yml配置

- addresponseheader = x-request-foo,bar
json配置

}
路徑字首增強

請求路徑/hello, 將會被替換為 /mypath/hello

yml配置

- prefixpath = /mypath
json配置

}
路徑字首刪除

請求/name/bar/foo,去除掉前面兩個字首之後,最後**到目標服務的路徑為/foo

yml配置

- stripprefix = 2
json配置

}
重定向

yml配置

- preservehostheader
json配置

}
重定向

yml配置

- redirectto = 302,
json配置

}
斷路器

yml配置

- name: hystrix

args:

# 斷路後跳轉位址

name: fallbackcmd

fallbackuri: forward:/incaseoffailureusethis

json配置

}
整合redis原生支援請求限流

yml配置

- name: requestratelimiter

args:

redis-rate-limiter.replenishrate: 10

redis-rate-limiter.burstcapacity: 20

json配置

}
刪除請求頭屬性

yml配置

- removerequestheader = x-request-foo
json配置

}
刪除響應頭屬性

yml配置

- removeresponseheader = x-request-foo
json配置

}
重寫響應頭

將請求 /42?user=ford&password=omg!what&flag=true, 改為 /42?user=ford&password=***&flag=true

yml配置

- rewriteresponseheader = x-response-foo,password=[^&]+,password=***
json配置

}
重設請求路徑

請求/foo/bar,在接下來的處理中被改為/bar

yml配置

- setpath =/
json配置

"}}
設定響應頭

在接下來的處理中修改響應頭x-response-foo為bar

yml配置

- setresponseheader =x-request-foo,bar
json配置

}
設定http狀態

yml配置

- name: setstatus

args:

status: 401

json配置

}
設定檔案傳輸大小

yml配置

- name: requestsize

args:

maxsize: 5000000

json配置

}
失敗重試

yml配置

- name: retry

args:

retries: 3

statuses: bad_gateway

json配置

}

springcloud GateWay配置動態路由

之前學習gateway進行請求的 uri是固定的,也就是在單機的情況下。不過實際開發中,服務很多時候是集群,因此uri就不能寫固定的ip了。而動態路由的方式能夠實現對集群的負載均衡 下面動態路由實現步驟 1.依賴。由於註冊中心使用的是eureka,gateway需要註冊到eureka並且要獲取eur...

springcloud gateway解決跨域問題

方式一 if request method options if request method post if request method get 方式二 未加if判斷 add header access control allow origin add header access control...

spring cloud Gateway簡單使用

2年前有幸使用過一次spring cloud 1.5.9 1.整合的是zuul做閘道器,沒有使用gateway做閘道器,一直是個小遺憾。終於在2年後的19年底再次使用spring cloud,這次果斷使用spring cloud 全家桶。閘道器就是原生的spring cloud gateway 專案...