前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >网关问题

网关问题

作者头像
无忧摸鱼
发布2022-05-31 11:25:00
7050
发布2022-05-31 11:25:00
举报
文章被收录于专栏:摸鱼天堂

Authorization 后端无法获取 描述 前端请求携带Authorization请求头,但后端无法获取

解决方案 联系网关开发增加放行配置

apollo配置

找到AppId: api-gateway 增加zuul.routes.{服务名称}.sensitive-headers= 增加zuul.routes.{服务名称}.custom-sensitive-headers=true 重启网关

访问后端报404 描述 通过网关地址访问, 但是报404

解决方案 报404原因有很多, 可按如下方法排查:

查看网关接入流程,确认已经正常接入 检查请求地址是否正确, 格式: 网关访问地址/服务名称/服务url eg: https://apptest.t3go.cn:3643/driver-app-api/api/driver/v1/login/login 检查Consul是否已经注册, 登陆consul 页面, 搜索服务是否已存在、健康检查是否正常的 检查服务是否发布最新版, 可登陆服务器访问下该路径是否存在

Consul 健康检查失败 描述 服务已经成功注册, 但是健康检查失败

解决方案 主要原因是健康检查接口返回非200状态码, 可按如下方法排查:

检验健康检查接口是否正常, 健康检查接口可查看配置项 spring.cloud.consul.discovery.health-check-url 联系中间件运维登陆consul服务器, curl 访问健康检查接口, 如果访问失败可能是安全组配置的问题,联系运维或OA申请开通安全组

请求有时无法到后端 描述 第一次请求api能收到,第二次请求,api没收到,第三次,又收到了

解决方案 主要原因是其它环境的服务注册到consul了, 检查下consul注册列表, 联系中间件运维删除其它环境的服务

前端访问报跨域异常 描述 前端请求时发生跨域异常

解决方案 目前网关已经做了跨域处理, 一般情况不会报跨域, 如果发生跨域可按如下步骤排查:

新增自定义请求头,需要找中间件运维配置放行 HTTP标准请求头是默认放行的,并且个别自定义请求头也是放行,如:DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization,token,appid,noncestr,driType,sign,grayVersion 请求响应返回4XX、5XX状态码, 浏览器也会报跨域异常, 使用postman或其它工具发请求排查接口是否正常 具体详情: https://fetch.spec.whatwg.org/#statuses 常见错误 出现 No ‘xxxx’ header is present no the requested resource 后端服务也做了跨域, 导致重复跨域响应头, 后端去掉相关的跨域处理代码 常见错误 the ‘xxxx’ header contains multiple values ‘x,x’, but only one is allowed 跨域相关知识点可参考: https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Access_control_CORS | https://fetch.spec.whatwg.org/

通用解决方法 不走网关,直接访问服务器, 验证是否能重现问题

用户信息获取:

代码语言:javascript
复制
redis db3
domainId = AUTH:TOKEN:ACCOUNT:${token}

以下是网关转发后端的请求头:

代码语言:javascript
复制
accountNew=AUTH:USER:GATEWAY:${domainId}
systemId=AUTH:TOKEN:SYSTEM:${token}
authUserId=domainId.split("😊[0]
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/07/18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
消息队列 TDMQ
消息队列 TDMQ (Tencent Distributed Message Queue)是腾讯基于 Apache Pulsar 自研的一个云原生消息中间件系列,其中包含兼容Pulsar、RabbitMQ、RocketMQ 等协议的消息队列子产品,得益于其底层计算与存储分离的架构,TDMQ 具备良好的弹性伸缩以及故障恢复能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档