Zuul Ribbon 异常总是返回 500 响应
Posted
技术标签:
【中文标题】Zuul Ribbon 异常总是返回 500 响应【英文标题】:Zuul Ribbon exception always returns 500 response 【发布时间】:2016-05-19 13:35:20 【问题描述】:我正在使用带有 Eureka 的 Zuul 作为反向代理。 当下游服务返回 4xx Client Exception 时,Ribbon 会将异常转换为 500 服务器错误。
whitelabel 页面上的示例输出是:
There was an unexpected error (type=Internal Server Error, status=500).
403 FORBIDDEN
RibbonRoutingFilter 似乎总是将任何异常转换为 500。 https://github.com/spring-cloud/spring-cloud-netflix/blob/master/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/zuul/filters/route/RibbonRoutingFilter.java#L81
是否有任何方法可以覆盖此行为并将原始状态代码发送给客户端。
【问题讨论】:
所以我试图重现这一点,例如,如果客户端发回带有 401 的有效响应,则会将正确的错误代码报告回客户端。 github.com/spring-cloud/spring-cloud-netflix/blob/master/…你有办法重现这个吗? 我能够使用 503 进行复制,这是功能区中的一种特殊情况。如果您有一个可以重现此问题的项目,请创建一个问题。 【参考方案1】:这是我们计划修复的known issue。
【讨论】:
以上是关于Zuul Ribbon 异常总是返回 500 响应的主要内容,如果未能解决你的问题,请参考以下文章