美文网首页
ingress 代理前端以及后端无法代理访问失败

ingress 代理前端以及后端无法代理访问失败

作者: 无处安放的躁动 | 来源:发表于2019-11-12 18:45 被阅读0次

    ingress 代理访问后端,无法正确代理

    # chrome 访问500 并显示异常信息
    org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'POST' not supported: Request method 'POST' not supported"
    # ingress 日志
    192.168.0.188 - - [12/Nov/2019:08:23:18 +0000] "POST /sso/login HTTP/1.1" 500 194 "http://test.sso.james.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36" 503 0.016 [james-java-ldd-sso-7103] [] 10.244.1.195:7103 194 0.017 500 d8fc98feb1382207f0cf7266fb66ab39
    

    分析

    由于ingress代理前端以及后端时候,无法代理访问后端post请求,

    • 直接在pod上测试接口没有问题
    • 通过ingress代理地址后测试,无法实现登录
    • 问题出现ingress,ingress规则有问题,通过注释修改ingress解决Ingress 路由

    解决办法

    apiVersion: networking.k8s.io/v1beta1
    kind: Ingress
    metadata:
      name: ingress-ldd-sso-rules
      namespace: james
      annotations:
        #nginx.ingress.kubernetes.io/rewrite-target: /
        ingress.bluemix.net/proxy-next-upstream-config: "serviceName=<myservice1> retries=<tries> timeout=<time> error=true http_502=true; serviceName=<myservice2> http_403=true non_idempotent=true"
    spec:
      rules:
      - host: test.sso.james.com
        http:
          paths:
          - path: /
            backend:
              serviceName: web-ldd-sso
              servicePort: 80
          - path: /sso/
            backend:
              serviceName: java-ldd-sso
              servicePort: 7103
    

    参考文档

    使用注释定制 Ingress 路由

    相关文章

      网友评论

          本文标题:ingress 代理前端以及后端无法代理访问失败

          本文链接:https://www.haomeiwen.com/subject/dxwqictx.html