小编Mar*_*ner的帖子

Kubernetes NGINX Ingress 将 HTTP 请求从 POST 更改为 GET

我正在使用与 Docker-for-Mac 捆绑在一起的 Kubernetes。我正在尝试配置一个 Ingress,它将以 /v1/ 开头的 http 请求路由到我的后端服务,并将 /ui/ 请求路由到我的 Angular 应用程序。

我的问题似乎是请求的 HTTP 方法被入口 (NGINX) 从 POST 更改为 GET。

我尝试了各种重写规则,但没有成功。我什至从 Docker-for-Mac 切换到 Minikube,但结果是一样的。

如果我使用没有路径的简单入口(只是默认后端),那么服务将获取正确的 HTTP 方法。下面的入口有效:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress
spec:
  backend:
    serviceName: backend
    servicePort: 8080
Run Code Online (Sandbox Code Playgroud)

但这个入口并没有:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress
  annotations:
    kubernetes.io/ingress.class: "nginx"

spec:
  rules:
  - http:
      paths:
      - path: /v1
        backend:
          serviceName: backend
          servicePort: 8080
      - path: /ui
        backend:
          serviceName: webui
          servicePort: 80
Run Code Online (Sandbox Code Playgroud)

当我调试“后端”服务时,我发现 HTTP 请求是 GET 而不是 POST。

我在某处读到 …

nginx kubernetes

6
推荐指数
1
解决办法
6250
查看次数

标签 统计

kubernetes ×1

nginx ×1