feat: add Domain/host based request routing
This commit is contained in:
@@ -105,6 +105,8 @@ type Route struct {
|
||||
Name string `yaml:"name"`
|
||||
// Path defines route path
|
||||
Path string `yaml:"path"`
|
||||
//Host Domain/host based request routing
|
||||
Host string `yaml:"host"`
|
||||
// Rewrite rewrites route path to desired path
|
||||
//
|
||||
// E.g. /cart to / => It will rewrite /cart path to /
|
||||
@@ -247,6 +249,7 @@ func initConfig(configFile string) {
|
||||
Routes: []Route{
|
||||
{
|
||||
Name: "HealthCheck",
|
||||
Host: "localhost",
|
||||
Path: "/public",
|
||||
Destination: "http://localhost:80",
|
||||
Rewrite: "/healthz",
|
||||
|
||||
@@ -120,10 +120,14 @@ func (gatewayServer GatewayServer) Initialize() *mux.Router {
|
||||
disableXForward: route.DisableHeaderXForward,
|
||||
cors: route.Cors,
|
||||
}
|
||||
|
||||
router := r.PathPrefix(route.Path).Subrouter()
|
||||
router.Use(CORSHandler(route.Cors))
|
||||
router.PathPrefix("").Handler(proxyRoute.ProxyHandler())
|
||||
//Domain/host based request routing
|
||||
if route.Host != "" {
|
||||
router.Host(route.Host).PathPrefix("").Handler(proxyRoute.ProxyHandler())
|
||||
} else {
|
||||
router.PathPrefix("").Handler(proxyRoute.ProxyHandler())
|
||||
}
|
||||
} else {
|
||||
logger.Error("Error, path is empty in route %s", route.Name)
|
||||
logger.Info("Route path ignored: %s", route.Path)
|
||||
|
||||
Reference in New Issue
Block a user