最近在做的乙個需求,需要對外部訪問微服務的介面進行token鑑權,想來想去還是用閘道器合適。因為公司原來有用的zuul閘道器但是沒有上線,所以這次我就想把原來的閘道器服務整合進去。以前只看過zuul的一些資料並沒有動手實戰過,所以實戰中還是踩了些坑,浪費了很多時間和精力,這就是只看不動手的壞處啊!
以下是入門遇到的小問題
1. 路由規則
zuul
:routes
:order
: /jd/order/**
如果我們要通過閘道器路由,則需要直接訪問zuul閘道器服務的埠,然後加上路由,再加上介面路徑。
實際訪問路徑:
zuul會幫你截掉路由匹配的字首,然後**到對應的order服務介面/jd/order/12345
公司的專案部署在nginx中,所以我直接改nginx的location到upstream負載均衡到相應的多個閘道器伺服器,還是挺方便的。
2.token不被**
zuul缺省會過濾掉authorization敏感詞,所以token預設不會被**到後端微服務去。
解決:
context.
addzuulrequestheader
("authorization"
, tokens)
;
網上另外有種在yml檔案中配置的
zuul
:sensitive-headers
但是我用這個方式啟動服務會報錯,所以就選擇第一中**的方式了。
3.除了閘道器服務,其他微服務介面仍可以被訪問
例如:我知道了微服務部署所在的ip埠,我就可以直接去訪問該微服務的介面。
據我了解這個還需要整合一些許可權框架去做,spring security和shiro之類的。
Zuul路由閘道器
zuul路由閘道器 概述 1.zuul提供外部的請求 到具體的微服務例項中的服務 2.路由 zuul可以對外部訪問實現統一的入口 3.過濾 zuul可以對外部訪問進行干預,如請求校驗 服務聚合等 4.zuul需要配合eureka使用,需要在eureka中註冊並獲得其他微服務的資訊 5.理解 zuul...
Zuul路由閘道器
1.1 什麼是zuul zuul包含了對請求的路由和過濾這兩個主要的功能 zuul和eureka進行整合,將zuul自身註冊為eureka服務治理下的應用,同時從eureka中獲得其他微服務的訊息,也就是說以後訪問微服務都是通過zuul跳轉後獲得 1.2 zull簡單使用 編寫服務,匯入依賴 org...
Zuul路由閘道器
首先還是導包 需要eureka zuul的包 org.springframework.cloudgroupid spring cloud starter netflix eurekaartifactid dependency org.springframework.cloudgroupid spri...