V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
seagull7558
V2EX  ›  Kubernetes

Traefik 反向代理 xhr 404 问题

  •  
  •   seagull7558 · 2023-01-27 22:49:43 +08:00 · 1388 次点击
    这是一个创建于 669 天前的主题,其中的信息可能已经有所发展或是发生改变。
    部署一个 Minio,console 端口 5000,server 端口 9000

    service: ClusteIP 两个端口 5000 9000

    traefik: 监听两个端口 80 和 5000 并通过 Host(minio.1.zzz)匹配将请求转发到 service 的 5000 端口

    第一种请求方式:
    minio.1.zzz:5000 浏览器打开控制台没问题

    第二种请求方式:
    minio.1.zzz 浏览器可以打开控制台,但是发送的请求 404

    发现只要是控制台和服务分开俩端口的都不可以访问后端服务,nacos 和 xxl-job 可以,rabbitmq,rocketmq 都不行

    日志:

    {
    "ClientAddr": "192.168.4.250:55485",
    "ClientHost": "192.168.4.250",
    "ClientPort": "55485",
    "ClientUsername": "-",
    "DownstreamContentSize": 19,
    "DownstreamStatus": 404,
    "Duration": 688075,
    "OriginContentSize": 19,
    "OriginDuration": 169976,
    "OriginStatus": 404,
    "Overhead": 518099,
    "RequestAddr": "minio-console.etb-0-0-1.k8s.zszc",
    "RequestContentSize": 0,
    "RequestCount": 1018,
    "RequestHost": "minio-console.etb-0-0-1.k8s.zszc",
    "RequestMethod": "GET",
    "RequestPath": "/api/v1/login",
    "RequestPort": "-",
    "RequestProtocol": "HTTP/1.1",
    "RequestScheme": "http",
    "RetryAttempts": 0,
    "RouterName": "traefik-traefik-dashboard-6e26dcbaf28841493448@kubernetescrd",
    "StartLocal": "2023-01-27T13:20:06.337540015Z",
    "StartUTC": "2023-01-27T13:20:06.337540015Z",
    "entryPointName": "web",
    "level": "info",
    "msg": "",
    "time": "2023-01-27T13:20:06Z"
    }
    6 条回复    2023-01-28 14:01:27 +08:00
    yikyo
        1
    yikyo  
       2023-01-28 07:56:38 +08:00 via iPhone
    昨天刚部署了 minio ,你的 80 端口请求的不是 console ,请求的是 minio 上面的资源,返回 404 正常啊

    traefik 配置
    minio.1.zzz 转发到 9000
    console.1.zzz 转发到 5000

    都用 80 端口访问
    seagull7558
        2
    seagull7558  
    OP
       2023-01-28 08:31:55 +08:00
    @yikyo 没理解呢 我确实可以通过 80 端口看到 minio 的 console 但是就是页面上向后端发起的 xhr 的请求 404,我不理解
    yikyo
        3
    yikyo  
       2023-01-28 10:00:01 +08:00 via iPhone
    @seagull7558 80 端口的 console 有没有可能是缓存

    traefik 要区分流量,你都用了同一个域名,80 对应后端 9000 端口,5000 对应后端 5000 端口

    按你的说法 80 能访问到 console 就是不正常,返回 404 才是正常的结果

    你可以贴配置文件上来看看
    yikyo
        4
    yikyo  
       2023-01-28 10:01:59 +08:00 via iPhone
    minio 我也是刚装,不熟悉,但他的资源也是需要 http 访问,所以你通过 80 端口访问是出现 404 是正常结果,因为在 minio 中就不存在这个资源
    seagull7558
        5
    seagull7558  
    OP
       2023-01-28 11:03:34 +08:00
    我可能没有描述清楚哈

    traefik 监听的 80 端口和 500 端口都指向了 minio.ClusterIP 的 5000 端口,但是从 traefik 监听的 5000 端口的服务就能正常请求
    ashuai
        6
    ashuai  
       2023-01-28 14:01:27 +08:00
    你 9000 端口的转发是怎么配置的?
    5000 是给人类用的,9000 是给程序用的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5985 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 02:44 · PVG 10:44 · LAX 18:44 · JFK 21:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.