一 路由配置
1 方法一:通过配置文件配置,在resources/application.yaml中配置
具体的配置方法如下:
1 | zuul: |
以上只是配置的一个示例,更多的配置,请参考以下,根据需要选择一些配置以满足自己的业务需要:
配置名称 | 默认值 | 描述说明 |
---|---|---|
zuul.prefix | 空字符 | 所有路由公共的前缀 |
zuul.stripPrefix | true | 标识是否在转发之前从路径中删除前缀 |
zuul.retryable | false | 默认情况下是否支持重试(如果网关能支持重试的话) |
zuul.addProxyHeaders | true | 用于确定代理是否添加X-Forwarded- * 头的标志。 |
zuul.addHostHeader | false | 用于确定代理是否转发Host 头的标志。 |
zuul.ignoredServices | 需要忽略自动代理的服务名称集Set。默认情况下,将代理服务发现客户端中的所有服务。 | |
zuul.ignoredPatterns | 需要忽略的path的正则。 | |
zuul.ignoredHeaders | 可以完全忽略的Http头集合Set,包括下发下游的请求或者下游的响应的头中删除 | |
zuul.ignoreSecurityHeaders | true | 是否忽略Spring Security安全相关的header头。主要包含”Pragma”, “Cache-Control”, “X-Frame-Options”, “X-Content-Type-Options”, “X-XSS-Protection”, “Expires” |
zuul.forceOriginalQueryStringEncoding | false | 在SimpleHostRoutingFilter中构建后端URI时,强制使用原始查询字符串编码的标志。激活后,将使用HttpServletRequest getQueryString()方法而非UriTemplate构建查询字符串。请注意,在RibbonRoutingFilter中,此标志不适用于通过DiscoveryClient找到的服务(例如Eureka)。 |
zuul.servletPath | /zuul | 将Zuul安装为servlet的路径(不是Spring MVC的一部分)。对于具有较大主体的请求,例如,servlet的内存效率更高。文件上传。 |
zuul.ignoreLocalService | true | 是否忽略当前服务 |
zuul.host | 控制默认连接池属性的Host属性。 | |
zuul.host.maxTotalConnections | 200 | 代理可以向后端开放的最大总连接数。 |
zuul.host.maxPerRouteConnections | 20 | 单个路由可以使用的最大连接数。 |
zuul.host.socketTimeoutMillis | 10000 | Socket超时(毫秒)。默认为10000。 |
zuul.host.connectTimeoutMillis | 2000 | 连接超时(以毫秒为单位)。默认为2000 |
zuul.host.connectionRequestTimeoutMillis | -1 | 向连接管理器请求连接时使用的超时(以毫秒为单位)。默认为-1,未定义使用系统默认值。 |
zuul.host.timeToLive | -1 | 连接池的生存期。 |
zuul.host.timeUnit | TimeUnit.MILLISECONDS | zuul.host.timeToLive 的时间单位。 |
zuul.traceRequestBody | false | 可以跟踪请求body的标识 |
zuul.removeSemicolonContent | true | 标识是否可以删除通过第一个分号“;”的路径元素 |
zuul.decodeUrl | true | 标识是否解码url |
zuul.sensitiveHeaders | “Cookie”, “Set-Cookie”, “Authorization” | 不传递到下游请求的敏感头的列表。默认为通常包含用户凭据的“安全”header头集Set。如果下游服务与代理服务器属于同一系统,则可以从列表中删除它们,因此它们共享身份验证数据。如果在您自己的域之外使用物理URL,则通常不建议泄露用户凭据。 |
zuul.sslHostnameValidationEnabled | true | 标记以表明是否应该验证ssl连接的主机名。默认为true。仅应在测试设置中使用! |
zuul.ribbonIsolationStrategy | ExecutionIsolationStrategy.SEMAPHORE | ribbon隔离策略 |
zuul.semaphore | Hystrix Sempahores | |
zuul.semaphore.maxSemaphores | 100 | Hystrix的最大总信号量数。 |
zuul.threadPool | Hystrix ThreadPool | |
zuul.threadPool.useSeparateThreadPools | false | 用于确定RibbonCommands是否应为hystrix使用单独的线程池的标志。通过设置为true,RibbonCommands将在与其关联的hystrix的线程池中执行。每个RibbonCommand将根据其commandKey(serviceId)与一个线程池关联。默认情况下,所有命令将在单个线程池中执行,该线程池的threadPoolKey为“ RibbonCommand”。此属性仅在将THREAD用作RibbonIsolationStrategy时适用 |
zuul.threadPool.threadPoolKeyPrefix | 空字符串 | hystrix线程池的HystrixThreadPoolKey的前缀,分配给每个服务ID。仅当将THREAD用作RibbonIsolationStrategy且useSeparateThreadPools = true时,此属性才适用 |
zuul.setContentLength | false | 设置SendResponseFilter有条件地设置Content-Length标头。 |
zuul.includeDebugHeader | false | 设置SendResponseFilter有条件地包括X-Zuul-Debug-Header头。 |
zuul.initialStreamBufferSize | 8192 | 为SendResponseFilter设置初始流缓冲区大小。 |
zuul.routes | 路由名称和属性的映射 | |
zuul.routes.【路由key】.id | 路由的ID(默认情况下与其map的key相同)。 | |
zuul.routes.【路由key】.path | 路由的pattern(样式),例如/ foo/**。 | |
zuul.routes.【路由key】.serviceId | 映射到此路由的服务ID(如果有)。您可以指定物理URL或服务,但不能两者都指定。 | |
zuul.routes.【路由key】.url | 完整的物理URL以映射到路线。一种替代方法是使用服务ID和服务发现来查找物理地址。 | |
zuul.routes.【路由key】.stripPrefix | true | 标识是否在转发之前是否应删除此路由的前缀 |
zuul.routes.【路由key】.retryable | 此路由应可重试的标志(如果支持)。通常,重试需要服务ID和ribbon。 | |
zuul.routes.【路由key】.sensitiveHeaders | 不传递到下游请求的敏感头的列表。默认为通常包含用户凭据的“安全”标头集。如果下游服务与代理服务器属于同一系统,则可以从列表中删除它们,因此它们共享身份验证数据。如果在您自己的域之外使用物理URL,则通常不建议泄露用户凭据。 | |
zuul.routes.【路由key】.customSensitiveHeaders | false | 配合路由的sensitiveHeaders一起使用,设置为true则路由配置的sensitiveHeaders会被忽略 |