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
网友评论