专栏首页方丈的寺院微服务API通过ip可访问,域名不可访问问题分析

微服务API通过ip可访问,域名不可访问问题分析

摘要

经常会有同学遇到api通过ip可以访问,但是通过域名却不可以访问。本篇文章总结了造成这种情况可能的原因。因为与具体技术的选型、规则配置有关,所以没有深入讨论,只是列出可能性,仅供参考。

分析

问题

通过域名访问不到的请求表现的现象有

  1. 接口返回404
  2. 一个错误页面
  3. 提示method type不支持
  4. 提示接口缺乏必要的参数

这些都是接口访问不到,2是配置了错误页面;3,4则发出的POST/PUT 请求,但是请求了GET方法

概览

通过域名访问,在整个后端的访问路径如下图,大致分四个部分,浏览器、负载均衡层、网关层、服务层。域名解析这里忽略不讨论了。

出现ip可以访问,但是域名不可访问,4层都有可能导致这个问题。

微服务层

  1. 配置了接口访问权限

在微服务口中,单独限制了这个接口的访问权限,导致该接口没有注册到注册中心,这个可以通过查看代码,或者查看注册中心注册列表找出问题。

  1. 该接口的api prefix不符合该服务的规则

网关在根据api uri路由到某个具体服务时,为了提高检索效率,有些定义了路由规则,不同服务以不同的prefix来区分。这样服务里面的某个api prefix不符合该服务定义的前缀规则,则匹配不上 (当然一般的网关路由会做降级,前缀不符,就降级为遍历)

这个可以通过访问网关的ip/uri来找出问题。

网关层

  1. 路由算法有问题
  2. 没有订阅微服务 不是所有的微服务都需要对外暴露,对于中台类/或者其他一些内部服务是不对外暴露的。这些api是不可以直接通过域名访问的。

这些都可以通过访问网关的依赖,或者网关ip/uri来找出问题。

Nginx

Nginx里可以配置各种redirect规则,过滤规则。当通过网关ip可以访问api时,那多半是nginx的问题。可以检查nginx的配置问题,来定位问题。

浏览器重定向,将POST/PUT请求改写成了GET请求

比如网站从http升级到https,某个uri redirect了。当我们在浏览器中键入以www为开头的网址时,网页并不会自动跳转为HTTPS网站,因为浏览器默认打开HTTP网站,基于此,我们就需要对HTTP的访问在服务器端做301、302或307重定向,使之跳转到HTTPS网站。当使用了301,302后,浏览器会使用GET方式访问在Location中规定的URI,而无视原先请求的方法。

本文分享自微信公众号 - 方丈的寺院(gh_c98f244e174d),作者:cnstonefang

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-08-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 线上故障处理手册

    通常处理线上问题的三板斧是 重启-回滚-扩容,能够快速有效的解决问题,但是根据我多年的线上经验,这三个操作略微有些简单粗暴,解决问题的概率也非常随机,并不总是有...

    方丈的寺院
  • 可落地的DDD(4)-如何利用DDD进行微服务的划分(2)

    在前面一篇介绍了如何通过DDD的思想,来调整单体服务内的工程结构,为微服务的拆分做准备。同时介绍了我们在进行微服务拆分的时候踩过的一些坑。 这篇介绍下我们最终的...

    方丈的寺院
  • 可落地的DDD(3)-如何利用DDD进行微服务的划分

    前面两篇介绍了DDD的目标管理、DDD的工程结构调整。这篇讨论微服务的划分。微服务是目前后端比较流行的架构体系了,那么如何做好一个微服务的划分?一个微服务的粒度...

    方丈的寺院
  • 微网关与服务啮合 | 洞见

    技术雷达:现在越来越多的大型组织在向更加自组织的团队结构转型,这些团队拥有并运营自己的微服务,但他们如何在不依赖集中式托管的基础架构下,确保服务之间必要的一致性...

    ThoughtWorks
  • CES 2015:机器人产业投资战略分析

    为期半天的机器人论坛揭示了一个新趋势:消费机器人的投资机遇已经来临。 消费机器人的最佳时机 在举行消费机器人研讨会的Casanova602会议室座无虚席之前...

    机器人网
  • 独家 | 机器人时代我们如何保住工作

    似乎每一所高中和大学都组建了一个团队参加各种机器人比赛。牛津大学马丁学院进行的一项有争议的研究声称,美国45%的工作将在未来二十年内被自动化代替。焦虑不安的学...

    机器人网
  • Cloud-Platform部署学习

    老梁
  • 清华机器人乐队“墨甲”诞生了:中国风浓郁,还演出了舞台剧

    乐队刚刚完成了首演,那是名叫《墨甲幻音》的舞台剧。苍翠的竹林,池上的莲花,冬季萧瑟的山野间,有生灵在奔跑:

    量子位
  • 机器人“四大家族”加码中国市场

    “这个展示中心是目前行业中规模最大的,也与中国工业机器人的市场规模相匹配。”12月17日,安川电机(中国)有限公司董事长兼总经理今福正教在其新机器人中心揭幕时这...

    机器人网
  • Spring Cloud构建微服务架构:服务消费(Ribbon)【Dalston版】

    前言通过上一篇《Spring Cloud构建微服务架构:服务消费(基础)》,我们已经学会如何通过LoadBalancerClient接口来获取某个服务的具体实例...

    程序猿DD

扫码关注云+社区

领取腾讯云代金券