Apache、Zuul进行转发后报错问题的解决

本文详细描述了在使用Zuul进行地址转换时遇到的问题,当通过Apache反向代理到Zuul,服务端返回500错误。在经过对请求URL、参数和头信息的比对及调试后,发现Apache添加了X-Forwarded信息,而Zuul的PreDecorationFilter也会处理此类信息,可能导致第三方服务器报错。调整Zuul过滤器顺序并通知第三方服务器修改处理逻辑后,问题得到解决。排查过程中的两个关键点是Apache与Nginx处理X-Forwarded头的不同,以及Zuul对这类头信息的处理方式。
摘要由CSDN通过智能技术生成

今天用Zuul写了一个filter进行地址转换,逻辑比较简单,前端请求通过Zuul的filter,把前端的token反解为员工号,加入一些特定的参数后,递交到第三方服务端。大致花了一个小时写了一个filter,本机测试良好,但是放到测试环境测试,服务端返回500,未返回具体的错误message。由于服务端不是我们维护开发的,查看具体500报错信息很难,所以只能进行本地调试。

系统架构:

整个架构很简单,外网请求通过Apache反向代理到内网的Nginx,再请求Zuul,Zuul通过一系列转换后请求第三方系统。本地调试一切正常,但是在模拟环境部署后,发现问题:通过浏览器直接访问Zuul,返回正常;访问Nginx,返回正常;但是访问Apache,返回500。

第一个反应就是找所有请求的差异。从架构和打印的调试信息分析,通过apache访问,请求已经正确到达Zuul应用。所以首先要找出通过nginx正常访问和通过apache不正常访问,在zuul服务器上的差异。

一次GET请求,就包含了请求URL、请求参数和请求头,首先我们在zuul上加个filter,把这些信息打出来。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值