问题描述
前端请求服务端接口,返回504 Gateway Timeout,请求接口为https://profile.noodles.com/user-mail-pub/api/user-mail/user-trash-mails?userId=123456
原因分析
观察日志,发现网关链接超时,并且对应请求没有达到对应服务器上,域名解析错误,根据域名mail.noodles.com/user-mail-pub没有找到对应user-mail服务
查看服务对应路由管理配置,一级域名profile.noodles.com管理的二级域名只有user-mail,没有user-mail-pub,导致路由失败
解决
一级域名mail.noodles.com下增加user-mail-pub
扩展思考
1、一个请求到达公司指定服务的解析映射过程
还以问题API为例:https://profile.noodles.com/user-mail-pub/api/user-mail/user-trash-mails,在API中profile.noodles.com为一级域名,公司从DNS厂商购买所得,首先根据一级域名,确定能够确定属于哪个公司,公司内部维护一个Web服务配置(例如Nginx、API网关),里面改请求要映射到的具体服务。
2、为什么一个大公司所有部分都使用同一个一级域名
购买的一级域名越多成本也会增高,每个部门拥有独立的一级域名更多是技术和业务考虑。
技术层面:
如果一个公司都使用一个一级域名,一级域名被攻击,所有部门都会收到风险。
业务方面:
不同部门拥有独立的一级域名,可以提高部门产品的识别度,同时有些部门需要针对自己的产品做一些合规性处理。