You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GKE集群部署Elastic APM遭遇301永久重定向错误求助

解决APM客户端301永久重定向错误

问题分析

301错误表明业务服务请求https://mydomain/apm时被服务器重定向,但Node.js APM客户端默认不跟随重定向,因此抛出异常。核心原因基本是Ingress路径配置与客户端请求路径不匹配,导致Ingress自动触发路径重定向(比如强制添加尾部斜杠)。

解决方案

方案1:修正APM客户端请求路径

直接在serverUrl末尾添加尾部斜杠,匹配Ingress期望的路径格式:

var apm = require('elastic-apm-node').start({
    serviceName: 'shopping',
    secretToken: '',
    // 添加尾部斜杠
    serverUrl: 'https://mydomain/apm/',
    environment: 'production'
})

方案2:调整Ingress配置(推荐)

如果APM Server通过Ingress暴露,修改Ingress规则,让不带斜杠的/apm路径也能正确匹配,避免触发301重定向。以Nginx Ingress为例:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: apm-server-ingress
  annotations:
    # 调整重写规则,兼容带/不带尾部斜杠的请求
    nginx.ingress.kubernetes.io/rewrite-target: /$2
spec:
  rules:
  - host: mydomain
    http:
      paths:
      - path: /apm(/|$)(.*)
        pathType: Prefix
        backend:
          service:
            name: apm-server # 替换为你的APM Server服务名
            port:
              number: 8200

方案3:开启客户端重定向跟随(临时 workaround)

如果暂时无法修改Ingress或客户端路径,可以开启APM客户端的重定向跟随功能:

var apm = require('elastic-apm-node').start({
    serviceName: 'shopping',
    secretToken: '',
    serverUrl: 'https://mydomain/apm',
    environment: 'production',
    // 开启重定向跟随
    followRedirects: true
})

验证方法

修改配置后重启业务服务,查看日志是否还有301错误。同时可用curl测试路径有效性:

curl -v https://mydomain/apm

若返回200则路径配置正常;若仍返回301,需检查Ingress路径规则和APM Server服务端口的映射是否正确。

内容的提问来源于stack exchange,提问作者Sunil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 02:18:07