Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

gRPC: authority pseudo header not forwarded to service #3706

Closed
fredr opened this issue Jan 29, 2019 · 9 comments · Fixed by #4212
Closed

gRPC: authority pseudo header not forwarded to service #3706

fredr opened this issue Jan 29, 2019 · 9 comments · Fixed by #4212

Comments

@fredr
Copy link
Contributor

fredr commented Jan 29, 2019

Is this a BUG REPORT or FEATURE REQUEST? (choose one):
BUG REPORT

NGINX Ingress controller version:
0.21.0

Kubernetes version (use kubectl version):
v1.11.5-gke.5

Environment:
Google Cloud Platform

What happened:
We have a setup very similar to the grpc example

We have an ingress that terminates TLS, with an insecure GRPC backend (using the nginx.ingress.kubernetes.io/backend-protocol: "GRPC" annotation).

The ingress backned is a service of ClusterIP type, that is pointing to a deployment running a simple grpc app.

When we port forward directly to a pod, and make grpc requests (or plain http2 requests), the :authority-header is set all the way.

When we do requests via the ingress, the :authority-header is not set, but the host-header is set.

What you expected to happen:
I expected the :authority-header to be set all the way down to the pod, other pseudo headers are set all the way (:method, :path and :scheme is set)

How to reproduce it (as minimally and precisely as possible):
Setting up the grpc example above and logging the headers should do it. Let me know if you want me to create some kind of example app.

Anything else we need to know:
Since the other pseudo headers are forwarded, I'm suspecting there might be a reason behind not forwarding the authority header. But the traffic to the ingress and from the ingress is HTTP2, so I havent been able to find a reasoning behind it.

@fredr
Copy link
Contributor Author

fredr commented Jan 29, 2019

Config example of our ingress and service:

ingress.yaml:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/backend-protocol: GRPC
    nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
  labels:
    app.kubernetes.io/instance: test-app
    app.kubernetes.io/managed-by: Tiller
    app.kubernetes.io/name: test-app
    helm.sh/chart: test-app-0.1.0
  name: test-app
  namespace: default
spec:
  rules:
  - host: test-app.example.com
    http:
      paths:
      - backend:
          serviceName: test-app
          servicePort: grpc
  tls:
  - hosts:
    - test-app.example.com
    secretName: example-com-tls

service.yaml:

apiVersion: v1
kind: Service
metadata:
  labels:
    app.kubernetes.io/instance: test-app
    app.kubernetes.io/managed-by: Tiller
    app.kubernetes.io/name: test-app
    helm.sh/chart: test-app-0.1.0
  name: test-app
spec:
  ports:
  - name: grpc
    port: 50051
    protocol: TCP
    targetPort: grpc
  selector:
    app.kubernetes.io/instance: test-app
    app.kubernetes.io/name: test-app
  sessionAffinity: None
  type: ClusterIP

@aledbf
Copy link
Member

aledbf commented Jan 29, 2019

@fredr please check https://kubernetes.slack.com/archives/CANQGM8BA/p1548172633578200

Just in case, the authority header = test-app.example.com?

Edit: the ingress controller does not filter headers to be proxied

@fredr
Copy link
Contributor Author

fredr commented Jan 29, 2019

@aledbf yes, I posted that question, but the :authority-header is not invalid, so I don't see why ignore_invalid_headers off; would do any difference?

@aledbf
Copy link
Member

aledbf commented Jan 29, 2019

maybe we need to set the header? http://nginx.org/en/docs/http/ngx_http_grpc_module.html#grpc_set_header

@aledbf
Copy link
Member

aledbf commented Jan 29, 2019

@fredr maybe you can add the flag --v=5 to the ingress controller deployment to enable nginx debug logs and check what is being done with the header

@fredr
Copy link
Contributor Author

fredr commented Jan 29, 2019

The output from when --v=5 is set.

Interesting, seems like the :authority is set, just the same as the other pseudo headers. But why doesn't it get all the way to the pod, if it is not nginx? I'm very confused here

2019/01/29 16:12:23 [debug] 151#151: *489 event timer add: 6: 60000:101420120
2019/01/29 16:12:24 [debug] 151#151: *489 SSL_read: -1
2019/01/29 16:12:24 [debug] 151#151: *489 malloc: 000055676CCAD9B0:4096
2019/01/29 16:12:24 [debug] 151#151: *489 SSL to write: 40
2019/01/29 16:12:24 [debug] 151#151: *489 http2 frame sent: 000055676CC91688 sid:0 bl:0 len:4
2019/01/29 16:12:24 [debug] 151#151: *489 free: 000055676CCAD9B0
2019/01/29 16:12:24 [debug] 151#151: *489 SSL buf copy: 27
2019/01/29 16:12:24 [debug] 151#151: *489 reusable connection: 0
2019/01/29 16:12:24 [debug] 151#151: *489 http2 read handler
2019/01/29 16:12:24 [debug] 151#151: *489 SSL_get_error: 2
2019/01/29 16:12:24 [debug] 151#151: *489 http2 get indexed name: 19
2019/01/29 16:12:24 [debug] 151#151: *489 http script var
2019/01/29 16:12:24 [debug] 151#151: *489 http map: "" "https"
2019/01/29 16:12:24 [debug] 151#151: *489 http script value: "default"
2019/01/29 16:12:24 [debug] 151#151: *489 lua creating new thread
2019/01/29 16:12:24 [debug] 151#151: *489 http script var: "1ff2e73225a8a7cba337b0ab81d45be0"
2019/01/29 16:12:24 [debug] 151#151: *489 lua run thread, top:0 c:1
2019/01/29 16:12:24 [debug] 151#151: *489 http cleanup add: 000055676CC90630
2019/01/29 16:12:24 [debug] 151#151: *489 http script var: "https"
2019/01/29 16:12:24 [debug] 151#151: *489 http map: "test-app.example.com" "test-app.example.com"
2019/01/29 16:12:24 [debug] 151#151: *489 rewrite phase: 5
2019/01/29 16:12:24 [debug] 151#151: *489 http script value: "https"
2019/01/29 16:12:24 [debug] 151#151: *489 lua resume returned 0
2019/01/29 16:12:24 [debug] 151#151: *489 http upstream connect: -2
2019/01/29 16:12:24 [debug] 151#151: *489 grpc output filter
2019/01/29 16:12:24 [debug] 151#151: *489 event timer del: 6: 101540584
2019/01/29 16:12:24 [debug] 151#151: *489 http upstream send request body
2019/01/29 16:12:24 [debug] 151#151: *489 recv: eof:0, avail:1
2019/01/29 16:12:24 [debug] 151#151: *489 event timer add: 51: 60000:101420785
2019/01/29 16:12:24 [debug] 151#151: *489 http upstream send request
2019/01/29 16:12:24 [debug] 151#151: *489 writev: 9 of 9
2019/01/29 16:12:24 [debug] 151#151: *489 grpc frame: 4, len: 0, f:1, i:0
2019/01/29 16:12:24 [debug] 151#151: *489 chain writer in: 000055676CD2C108
2019/01/29 16:12:24 [debug] 151#151: *489 chain writer out: 0000000000000000
2019/01/29 16:12:24 [debug] 151#151: *489 grpc output limit: 65535 w:65535:65535
2019/01/29 16:12:24 [debug] 151#151: *489 grpc response: 00006d01050000000120885c81076196df697e9413ea651d4a08017d40b97022b82694c5a37f40899acac8b5254207317fb0d5596c1a4c7a943214a8e950d4d741692d492c8a1ec52a3a5445b5d67b1259182d438e82c8a1aa5133990a20b677310b40889acac8b21234da8f8208bf7685bc7f119fd7, len: 118
2019/01/29 16:12:24 [debug] 151#151: *489 http upstream send request body
2019/01/29 16:12:24 [debug] 151#151: *489 grpc frame: 1, len: 109, f:5, i:1
2019/01/29 16:12:24 [debug] 151#151: *489 grpc header: "content-length: 0"
2019/01/29 16:12:24 [debug] 151#151: *489 grpc table size update: 0
2019/01/29 16:12:24 [debug] 151#151: *489 grpc value: len:2 h:1 last:9, rest:9
2019/01/29 16:12:24 [debug] 151#151: *489 http2 output header: ":status: 200"
2019/01/29 16:12:24 [debug] 151#151: *489 http2 output header: "content-length: 0"
2019/01/29 16:12:24 [debug] 151#151: *489 grpc value: len:48 h:1 last:68, rest:68
2019/01/29 16:12:24 [debug] 151#151: *489 http2:13 create HEADERS frame 000055676CD2C568: len:158 fin:1
2019/01/29 16:12:24 [debug] 151#151: *489 http2 frame sent: 000055676CD2C568 sid:13 bl:1 len:158
2019/01/29 16:12:24 [debug] 151#151: *489 http write filter: l:0 f:1 s:0
2019/01/29 16:12:24 [debug] 151#151: *489 http2 handle connection handler
2019/01/29 16:12:24 [debug] 151#151: *489 event timer add: 6: 180000:101540786
2019/01/29 16:12:24 [debug] 151#151: *489 lua body filter for user lua code, uri "/hej/hopp"
2019/01/29 16:12:24 [debug] 151#151: *489 post event 000055676EA78B20
2019/01/29 16:12:25 [debug] 151#151: *489 SSL_read: 17
2019/01/29 16:12:25 [debug] 151#151: *489 SSL_shutdown: 1
2019/01/29 16:12:25 [debug] 151#151: *489 close http connection: 6
2019/01/29 16:12:25 [debug] 151#151: *489 free: 000055676CC893E0, unused: 8
2019/01/29 16:12:25 [debug] 151#151: *489 free: 0000000000000000
2019/01/29 16:12:24 [debug] 151#151: *489 http script var: "test-app.example.com"
2019/01/29 16:12:24 [debug] 151#151: *489 http2 header: "user-agent: nghttp2/1.18.1"
2019/01/29 16:12:24 [debug] 151#151: *489 grpc header: "x-original-uri: /hej/hopp"
2019/01/29 16:12:24 [debug] 151#151: *489 posix_memalign: 000055676CC6A4A0:128 @16
2019/01/29 16:12:24 [debug] 151#151: *489 http script copy: "X-Forwarded-Host"
2019/01/29 16:12:24 [debug] 151#151: *489 post access phase: 16
2019/01/29 16:12:24 [debug] 151#151: *489 http script var: "test-app.example.com"
2019/01/29 16:12:24 [debug] 151#151: *489 http2 encoded string, len:20
2019/01/29 16:12:24 [debug] 151#151: *489 grpc header: "x-forwarded-for: 10.100.15.195"
2019/01/29 16:12:24 [debug] 151#151: *489 http script set $service_port
2019/01/29 16:12:24 [debug] 151#151: *489 test location: "/"
2019/01/29 16:12:24 [debug] 151#151: *489 connect to 10.98.24.76:50051, fd:51 #490
2019/01/29 16:12:24 [debug] 151#151: *489 http2 frame out: 000055676CC915D0 sid:0 bl:0 len:0
2019/01/29 16:12:24 [debug] 151#151: *489 grpc response: 000000040000000000000000040100000000, len: 18
2019/01/29 16:12:24 [debug] 151#151: *489 grpc name: len:8 h:1 last:18, rest:18
2019/01/29 16:12:24 [debug] 151#151: *489 recv: fd:51 118 of 4096
2019/01/29 16:12:24 [debug] 151#151: *489 grpc header: "grpc-status: 12"
2019/01/29 16:12:24 [debug] 151#151: *489 http2 output header: "strict-transport-security: max-age=15724800; includeSubDomains"
2019/01/29 16:12:24 [debug] 151#151: *489 lua header filter for user lua code, uri "/hej/hopp"
2019/01/29 16:12:24 [debug] 151#151: *489 http2 output header: "grpc-message: Operation is not implemented or not supported/enabled in this service"
2019/01/29 16:12:24 [debug] 151#151: *489 SSL buf copy: 9
2019/01/29 16:12:24 [debug] 151#151: *489 http output filter "/hej/hopp?"
2019/01/29 16:12:24 [debug] 151#151: *489 http write filter limit 0
2019/01/29 16:12:24 [debug] 151#151: *489 free: 000055676CD28370
2019/01/29 16:12:24 [debug] 151#151: *489 http log handler
2019/01/29 16:12:25 [debug] 151#151: *489 reusable connection: 0
2019/01/29 16:12:25 [debug] 151#151: *489 posix_memalign: 000055676CC91580:4096 @16
2019/01/29 16:12:25 [debug] 151#151: *489 free: 000055676CC8B320
2019/01/29 16:12:24 [debug] 151#151: *489 grpc output limit: 65535 w:65535:65535
2019/01/29 16:12:24 [debug] 151#151: *489 generic phase: 0
2019/01/29 16:12:24 [debug] 151#151: *489 http map started
2019/01/29 16:12:24 [debug] 151#151: *489 http map: "" "1ff2e73225a8a7cba337b0ab81d45be0"
2019/01/29 16:12:24 [debug] 151#151: *489 http2 table add: "user-agent: nghttp2/1.18.1"
2019/01/29 16:12:24 [debug] 151#151: *489 http2 raw string, len:3
2019/01/29 16:12:24 [debug] 151#151: *489 http upstream request: "/hej/hopp?"
2019/01/29 16:12:24 [debug] 151#151: *489 http2 PRIORITY frame sid:3 depends on 0 excl:0 weight:201
2019/01/29 16:12:24 [debug] 151#151: *489 http2 frame type:2 f:0 l:5 sid:3
2019/01/29 16:12:24 [debug] 151#151: *489 posix_memalign: 000055676CCB2470:1024 @16
2019/01/29 16:12:24 [debug] 151#151: *489 http2 get indexed header: 2
2019/01/29 16:12:24 [debug] 151#151: *489 http exten: ""
2019/01/29 16:12:24 [debug] 151#151: *489 SSL ALPN supported by client: h2-14
2019/01/29 16:12:23 [debug] 151#151: *489 reusable connection: 1
2019/01/29 16:12:23 [debug] 151#151: *489 accept: 10.100.15.195:45130 fd:6
2019/01/29 16:12:24 [debug] 151#151: *489 SSL server name: "test-app.example.com"
2019/01/29 16:12:24 [debug] 151#151: *489 SSL ALPN supported by client: h2-16
2019/01/29 16:12:24 [debug] 151#151: *489 posix_memalign: 000055676CC91580:4096 @16
2019/01/29 16:12:24 [debug] 151#151: *489 SSL_get_error: 2
2019/01/29 16:12:24 [debug] 151#151: *489 http2 frame out: 000055676CC915D0 sid:0 bl:0 len:18
2019/01/29 16:12:24 [debug] 151#151: *489 SSL_write: 40
2019/01/29 16:12:24 [debug] 151#151: *489 SSL buf copy: 13
2019/01/29 16:12:24 [debug] 151#151: *489 http2 idle handler
2019/01/29 16:12:24 [debug] 151#151: *489 event timer add: 6: 180000:101540584
2019/01/29 16:12:24 [debug] 151#151: *489 SSL_read: 180
2019/01/29 16:12:24 [debug] 151#151: *489 http2 SETTINGS frame
2019/01/29 16:12:24 [debug] 151#151: *489 malloc: 000055676CC8B320:4096
2019/01/29 16:12:24 [debug] 151#151: *489 http2 table add: ":authority: test-app.example.com"
2019/01/29 16:12:24 [debug] 151#151: *489 http2 header: "accept: */*"
2019/01/29 16:12:24 [debug] 151#151: *489 rewrite phase: 3
2019/01/29 16:12:24 [debug] 151#151: *489 lua run thread, top:0 c:1
2019/01/29 16:12:24 [debug] 151#151: *489 lua resume returned 0
2019/01/29 16:12:24 [debug] 151#151: *489 http script set $namespace
2019/01/29 16:12:24 [debug] 151#151: *489 lua light thread ended normally
2019/01/29 16:12:24 [debug] 151#151: *489 http script var: "/hej/hopp"
2019/01/29 16:12:24 [debug] 151#151: *489 http map: "443" "443"
2019/01/29 16:12:24 [debug] 151#151: *489 rewrite phase: 4
2019/01/29 16:12:24 [debug] 151#151: *489 http map: "https:https" "0"
2019/01/29 16:12:24 [debug] 151#151: *489 http map started
2019/01/29 16:12:24 [debug] 151#151: *489 grpc header: "x-forwarded-proto: https"
2019/01/29 16:12:24 [debug] 151#151: *489 event timer add: 51: 60000:101420783
2019/01/29 16:12:24 [debug] 151#151: *489 event timer del: 51: 101420783
2019/01/29 16:12:24 [debug] 151#151: *489 http request count:2 blk:0
2019/01/29 16:12:24 [debug] 151#151: *489 grpc send settings ack
2019/01/29 16:12:24 [debug] 151#151: *489 writev: 397 of 397
2019/01/29 16:12:24 [debug] 151#151: *489 chain writer in: 000055676CD2C108
2019/01/29 16:12:24 [debug] 151#151: *489 SSL_write: 9
2019/01/29 16:12:24 [debug] 151#151: *489 grpc output out l:0 f:0 000055676CD2C358, pos 000055676CD2C358, size: 9 file: 0, size: 0
2019/01/29 16:12:24 [debug] 151#151: *489 chain writer buf fl:1 s:9
2019/01/29 16:12:24 [debug] 151#151: *489 grpc header: ":status: 200"
2019/01/29 16:12:24 [debug] 151#151: *489 grpc output limit: 65535 w:65535:65535
2019/01/29 16:12:24 [debug] 151#151: *489 grpc header: "date: Tue, 29 Jan 2019 16:12:24 GMT"
2019/01/29 16:12:24 [debug] 151#151: *489 http2 push resources
2019/01/29 16:12:24 [debug] 151#151: *489 grpc value: len:5 h:1 last:5, rest:5
2019/01/29 16:12:24 [debug] 151#151: *489 grpc header done
2019/01/29 16:12:24 [debug] 151#151: *489 http postpone filter "/hej/hopp?" 00007FFE175A4CF0
2019/01/29 16:12:24 [debug] 151#151: *489 SSL_write: 167
2019/01/29 16:12:24 [debug] 151#151: *489 http postpone filter "/hej/hopp?" 00007FFE175A4C60
2019/01/29 16:12:24 [debug] 151#151: *489 http write filter 0000000000000000
2019/01/29 16:12:24 [debug] 151#151: *489 http map: "/hej/hopp" "1"
2019/01/29 16:12:24 [debug] 151#151: *489 posix_memalign: 000055676CCB7780:4096 @16
2019/01/29 16:12:24 [debug] 151#151: *489 generic phase: 18
2019/01/29 16:12:24 [debug] 151#151: *489 reusable connection: 0
2019/01/29 16:12:24 [debug] 151#151: *489 http2 idle handler
2019/01/29 16:12:24 [debug] 151#151: *489 http2 frame complete pos:000055676CB02969 end:000055676CB02969
2019/01/29 16:12:25 [debug] 151#151: *489 SSL_get_error: 6
2019/01/29 16:12:25 [debug] 151#151: *489 http2 frame type:7 f:0 l:8 sid:0
2019/01/29 16:12:25 [debug] 151#151: *489 event timer del: 6: 101540786
2019/01/29 16:12:24 [debug] 151#151: *489 http script copy: ""
2019/01/29 16:12:24 [debug] 151#151: *489 grpc header: "x-real-ip: 10.100.15.195"
2019/01/29 16:12:24 [debug] 151#151: *489 http2 request line: "GET /hej/hopp HTTP/2.0"
2019/01/29 16:12:24 [debug] 151#151: *489 http script copy: "X-Scheme"
2019/01/29 16:12:24 [debug] 151#151: *489 http script copy: "X-Request-ID"
2019/01/29 16:12:24 [debug] 151#151: *489 http2 table account: 56 free:3986
2019/01/29 16:12:24 [debug] 151#151: *489 http map started
2019/01/29 16:12:24 [debug] 151#151: *489 http2 get indexed header: 16
2019/01/29 16:12:24 [debug] 151#151: *489 http script copy: "true"
2019/01/29 16:12:24 [debug] 151#151: *489 generic phase: 9
2019/01/29 16:12:24 [debug] 151#151: *489 lua balancer peer, tries: 1
2019/01/29 16:12:24 [debug] 151#151: *489 SSL buf copy: 9
2019/01/29 16:12:24 [debug] 151#151: *489 http script copy: ""
2019/01/29 16:12:24 [debug] 151#151: *489 http upstream send request handler
2019/01/29 16:12:24 [debug] 151#151: *489 lua deleting light thread
2019/01/29 16:12:24 [debug] 151#151: *489 recv: fd:51 18 of 4096
2019/01/29 16:12:24 [debug] 151#151: *489 http upstream request: "/hej/hopp?"
2019/01/29 16:12:24 [debug] 151#151: *489 chain writer in: 0000000000000000
2019/01/29 16:12:24 [debug] 151#151: *489 recv: eof:0, avail:1
2019/01/29 16:12:24 [debug] 151#151: *489 http upstream send request
2019/01/29 16:12:24 [debug] 151#151: *489 http script var: "443"
2019/01/29 16:12:24 [debug] 151#151: *489 http output filter "/hej/hopp?"
2019/01/29 16:12:24 [debug] 151#151: *489 http finalize request: 0, "/hej/hopp?" a:1, c:1
2019/01/29 16:12:24 [debug] 151#151: *489 http script set $proxy_upstream_name
2019/01/29 16:12:24 [debug] 151#151: *489 free: 000055676CCB7780, unused: 3741
2019/01/29 16:12:24 [debug] 151#151: *489 http script copy: "X-Request-Start"
2019/01/29 16:12:24 [debug] 151#151: *489 http script copy: ""
2019/01/29 16:12:24 [debug] 151#151: *489 grpc output limit: 65535 w:65535:65535
2019/01/29 16:12:24 [debug] 151#151: *489 http script var: "1548778344.629"
2019/01/29 16:12:24 [debug] 151#151: *489 http script var: "443"
2019/01/29 16:12:24 [debug] 151#151: *489 http2 setting 3:100
2019/01/29 16:12:24 [debug] 151#151: *489 posix_memalign: 000055676CC97EC0:512 @16
2019/01/29 16:12:24 [debug] 151#151: *489 http2 frame complete pos:000055676CB0299B end:000055676CB02A14
2019/01/29 16:12:24 [debug] 151#151: *489 http2 frame complete pos:000055676CB029B7 end:000055676CB02A14
2019/01/29 16:12:24 [debug] 151#151: *489 http2 frame type:2 f:0 l:5 sid:7
2019/01/29 16:12:24 [debug] 151#151: *489 posix_memalign: 000055676CA50D90:512 @16
2019/01/29 16:12:24 [debug] 151#151: *489 posix_memalign: 000055676CCAD9B0:4096 @16
2019/01/29 16:12:24 [debug] 151#151: *489 http2 encoded string, len:7
2019/01/29 16:12:24 [debug] 151#151: *489 http uri: "/hej/hopp"
2019/01/29 16:12:24 [debug] 151#151: *489 posix_memalign: 000055676CC8FA20:4096 @16
2019/01/29 16:12:24 [debug] 151#151: *489 http check ssl handshake
2019/01/29 16:12:24 [debug] 151#151: *489 tcp_nodelay
2019/01/29 16:12:24 [debug] 151#151: *489 SSL handshake handler: 0
2019/01/29 16:12:24 [debug] 151#151: *489 init http2 connection
2019/01/29 16:12:24 [debug] 151#151: *489 posix_memalign: 000055676CC90DC0:512 @16
2019/01/29 16:12:24 [debug] 151#151: *489 free: 000055676CC91580, unused: 3656
2019/01/29 16:12:24 [debug] 151#151: *489 reusable connection: 1
2019/01/29 16:12:24 [debug] 151#151: *489 SSL_read: -1
2019/01/29 16:12:24 [debug] 151#151: *489 http2 preface verified
2019/01/29 16:12:24 [debug] 151#151: *489 http2 table account: 69 free:4096
2019/01/29 16:12:24 [debug] 151#151: *489 http script value: "/"
2019/01/29 16:12:24 [debug] 151#151: *489 http map started
2019/01/29 16:12:24 [debug] 151#151: *489 generic phase: 10
2019/01/29 16:12:24 [debug] 151#151: *489 http map started
2019/01/29 16:12:24 [debug] 151#151: *489 http script var: "https"
2019/01/29 16:12:24 [debug] 151#151: *489 http script var: "1ff2e73225a8a7cba337b0ab81d45be0"
2019/01/29 16:12:24 [debug] 151#151: *489 http script value: "-"
2019/01/29 16:12:24 [debug] 151#151: *489 malloc: 000055676CD28370:4096
2019/01/29 16:12:24 [debug] 151#151: *489 http cl:-1 max:1048576
2019/01/29 16:12:24 [debug] 151#151: *489 http script copy: ""
2019/01/29 16:12:24 [debug] 151#151: *489 grpc output out l:1 f:0 000055676CD2BE18, pos 000055676CD2BE18, size: 397 file: 0, size: 0
2019/01/29 16:12:24 [debug] 151#151: *489 malloc: 000055676CC7CED0:4096
2019/01/29 16:12:24 [debug] 151#151: *489 http upstream send request body
2019/01/29 16:12:24 [debug] 151#151: *489 recv: eof:0, avail:0
2019/01/29 16:12:24 [debug] 151#151: *489 grpc output limit: 65535 w:65535:65535
2019/01/29 16:12:24 [debug] 151#151: *489 grpc indexed header: 8
2019/01/29 16:12:24 [debug] 151#151: *489 grpc literal header: 0
2019/01/29 16:12:24 [debug] 151#151: *489 grpc value: len:22 h:1 last:102, rest:102
2019/01/29 16:12:24 [debug] 151#151: *489 access phase: 15
2019/01/29 16:12:24 [debug] 151#151: *489 http2 header filter
2019/01/29 16:12:24 [debug] 151#151: *489 event timer: 51, old: 101420785, new: 101420786
2019/01/29 16:12:24 [debug] 151#151: *489 lua balancer free peer, tries: 2
2019/01/29 16:12:24 [debug] 151#151: *489 lua request cleanup: forcible=0
2019/01/29 16:12:24 [debug] 151#151: *489 SSL_read: -1
2019/01/29 16:12:24 [debug] 151#151: *489 http2 read handler
2019/01/29 16:12:25 [debug] 151#151: *489 http2 frame skip 0
2019/01/29 16:12:24 [debug] 151#151: *489 generic phase: 8
2019/01/29 16:12:24 [debug] 151#151: *489 lua deleting light thread
2019/01/29 16:12:24 [debug] 151#151: *489 http script copy: "X-Using-Nginx-Controller"
2019/01/29 16:12:24 [debug] 151#151: *489 generic phase: 17
2019/01/29 16:12:24 [debug] 151#151: *489 http script copy: "X-Original-URI"
2019/01/29 16:12:24 [debug] 151#151: *489 http script set $location_path
2019/01/29 16:12:24 [debug] 151#151: *489 http script var: "https"
2019/01/29 16:12:24 [debug] 151#151: *489 http script copy: "Host"
2019/01/29 16:12:24 [debug] 151#151: *489 get keepalive peer
2019/01/29 16:12:24 [debug] 151#151: *489 posix_memalign: 000055676CD2B980:4096 @16
2019/01/29 16:12:24 [debug] 151#151: *489 http script equal
2019/01/29 16:12:24 [debug] 151#151: *489 http script set $ingress_name
2019/01/29 16:12:24 [debug] 151#151: *489 http cleanup add: 000055676CC90990
2019/01/29 16:12:24 [debug] 151#151: *489 grpc header: "accept-encoding: gzip, deflate"
2019/01/29 16:12:24 [debug] 151#151: *489 grpc header: "x-request-id: 1ff2e73225a8a7cba337b0ab81d45be0"
2019/01/29 16:12:24 [debug] 151#151: *489 grpc header: "accept: */*"
2019/01/29 16:12:24 [debug] 151#151: *489 access phase: 14
2019/01/29 16:12:24 [debug] 151#151: *489 SSL to write: 9
2019/01/29 16:12:24 [debug] 151#151: *489 chain writer out: 0000000000000000
2019/01/29 16:12:25 [debug] 151#151: *489 free: 000055676CA50D90, unused: 376
2019/01/29 16:12:24 [debug] 151#151: *489 http2 output header: "grpc-status: 12"
2019/01/29 16:12:24 [debug] 151#151: *489 http write filter: l:1 f:0 s:0
2019/01/29 16:12:24 [debug] 151#151: *489 lua capture body filter, uri "/hej/hopp"
2019/01/29 16:12:24 [debug] 151#151: *489 SSL to write: 167
2019/01/29 16:12:24 [debug] 151#151: *489 SSL buf copy: 158
2019/01/29 16:12:24 [debug] 151#151: *489 http script var: "/hej/hopp"
2019/01/29 16:12:24 [debug] 151#151: *489 reusable connection: 1
2019/01/29 16:12:24 [debug] 151#151: *489 delete posted event 000055676EA78B20
2019/01/29 16:12:24 [debug] 151#151: *489 posix_memalign: 000055676CC91580:4096 @16
2019/01/29 16:12:24 [debug] 151#151: *489 SSL_read: 9
2019/01/29 16:12:24 [debug] 151#151: *489 http script var: "test-app.example.com"
2019/01/29 16:12:24 [debug] 151#151: *489 http script value: "default-test-app-grpc"
2019/01/29 16:12:24 [debug] 151#151: *489 http script var: "test-app.example.com"
2019/01/29 16:12:24 [debug] 151#151: *489 http upstream process header
2019/01/29 16:12:24 [debug] 151#151: *489 http2 setting 4:65535
2019/01/29 16:12:24 [debug] 151#151: *489 http2 frame type:2 f:0 l:5 sid:9
2019/01/29 16:12:24 [debug] 151#151: *489 http2 frame complete pos:000055676CB0298D end:000055676CB02A14
2019/01/29 16:12:24 [debug] 151#151: *489 http2 frame complete pos:000055676CB029C5 end:000055676CB02A14
2019/01/29 16:12:24 [debug] 151#151: *489 http2 PRIORITY frame sid:5 depends on 0 excl:0 weight:101
2019/01/29 16:12:24 [debug] 151#151: *489 http2 frame type:1 f:25 l:56 sid:13
2019/01/29 16:12:24 [debug] 151#151: *489 SSL_do_handshake: 1
2019/01/29 16:12:23 [debug] 151#151: *489 epoll add event: fd:6 op:1 ev:80002001
2019/01/29 16:12:24 [debug] 151#151: *489 SSL ALPN selected: h2
2019/01/29 16:12:24 [debug] 151#151: *489 SSL_get_error: 2
2019/01/29 16:12:24 [debug] 151#151: *489 SSL: TLSv1.2, cipher: "ECDHE-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH Au=RSA Enc=AESGCM(256) Mac=AEAD"
2019/01/29 16:12:24 [debug] 151#151: *489 add cleanup: 000055676CC89580
2019/01/29 16:12:24 [debug] 151#151: *489 http2 send WINDOW_UPDATE frame sid:0, window:2147418112
2019/01/29 16:12:24 [debug] 151#151: *489 http2 frame sent: 000055676CC915D0 sid:0 bl:0 len:18
2019/01/29 16:12:24 [debug] 151#151: *489 event timer del: 6: 101420120
2019/01/29 16:12:24 [debug] 151#151: *489 posix_memalign: 000055676CC91580:4096 @16
2019/01/29 16:12:24 [debug] 151#151: *489 http2 frame type:4 f:0 l:12 sid:0
2019/01/29 16:12:24 [debug] 151#151: *489 http2 table add: "accept: */*"
2019/01/29 16:12:24 [debug] 151#151: *489 http2 header: ":authority: test-app.example.com"
2019/01/29 16:12:24 [debug] 151#151: *489 http script value: "test-app"
2019/01/29 16:12:24 [debug] 151#151: *489 http script var
2019/01/29 16:12:24 [debug] 151#151: *489 http script value: "grpc"
2019/01/29 16:12:24 [debug] 151#151: *489 using configuration "/"
2019/01/29 16:12:24 [debug] 151#151: *489 http script copy: ":"
2019/01/29 16:12:24 [debug] 151#151: *489 http script var: "test-app.example.com"
2019/01/29 16:12:24 [debug] 151#151: *489 http script copy: "X-Forwarded-For"
2019/01/29 16:12:24 [debug] 151#151: *489 access phase: 11
2019/01/29 16:12:24 [debug] 151#151: *489 http script var: "10.100.15.195"
2019/01/29 16:12:24 [debug] 151#151: *489 http script set $proxy_upstream_name
2019/01/29 16:12:24 [debug] 151#151: *489 http2 frame complete pos:000055676CB02A14 end:000055676CB02A14
2019/01/29 16:12:24 [debug] 151#151: *489 http script var: "https"
2019/01/29 16:12:24 [debug] 151#151: *489 chain writer buf fl:1 s:397
2019/01/29 16:12:24 [debug] 151#151: *489 http upstream request: "/hej/hopp?"
2019/01/29 16:12:24 [debug] 151#151: *489 http upstream send request handler
2019/01/29 16:12:24 [debug] 151#151: *489 grpc parse header: start
2019/01/29 16:12:24 [debug] 151#151: *489 grpc literal header: 28
2019/01/29 16:12:24 [debug] 151#151: *489 grpc literal header: 33
2019/01/29 16:12:24 [debug] 151#151: *489 http2 output header: "date: Tue, 29 Jan 2019 16:12:24 GMT"
2019/01/29 16:12:24 [debug] 151#151: *489 finalize grpc request
2019/01/29 16:12:24 [debug] 151#151: *489 http upstream process non buffered upstream
2019/01/29 16:12:24 [debug] 151#151: *489 lua capture body filter, uri "/hej/hopp"
2019/01/29 16:12:24 [debug] 151#151: *489 free keepalive peer: saving connection 000055676E6995E8
2019/01/29 16:12:24 [debug] 151#151: *489 write new buf t:0 f:0 0000000000000000, pos 0000000000000000, size: 0 file: 0, size: 0
2019/01/29 16:12:24 [debug] 151#151: *489 lua log handler, uri:"/hej/hopp" c:0
2019/01/29 16:12:24 [debug] 151#151: *489 http map started
2019/01/29 16:12:24 [debug] 151#151: *489 http2:13 HEADERS frame 000055676CD2C568 was sent
2019/01/29 16:12:24 [debug] 151#151: *489 free: 000055676CCB2470, unused: 878
2019/01/29 16:12:24 [debug] 151#151: *489 free: 000055676CCAD9B0, unused: 0
2019/01/29 16:12:24 [debug] 151#151: *489 http request count:1 blk:0
2019/01/29 16:12:24 [debug] 151#151: *489 SSL_get_error: 2
2019/01/29 16:12:24 [debug] 151#151: *489 reusable connection: 1
2019/01/29 16:12:25 [debug] 151#151: *489 run cleanup: 000055676CC89580
2019/01/29 16:12:25 [debug] 151#151: *489 free: 000055676CC91580, unused: 4016
2019/01/29 16:12:25 [debug] 151#151: *489 http2 frame complete pos:000055676CB02971 end:000055676CB02971
2019/01/29 16:12:25 [debug] 151#151: *489 free: 000055676CCAACD0
2019/01/29 16:12:24 [debug] 151#151: *489 post rewrite phase: 6
2019/01/29 16:12:24 [debug] 151#151: *489 http script var: "10.100.15.195"
2019/01/29 16:12:24 [debug] 151#151: *489 http script if
2019/01/29 16:12:24 [debug] 151#151: *489 lua access handler, uri:"/hej/hopp" c:1
2019/01/29 16:12:24 [debug] 151#151: *489 lua light thread ended normally
2019/01/29 16:12:24 [debug] 151#151: *489 lua reset ctx
2019/01/29 16:12:24 [debug] 151#151: *489 rewrite phase: 1
2019/01/29 16:12:24 [debug] 151#151: *489 stream socket 51
2019/01/29 16:12:24 [debug] 151#151: *489 grpc header: "x-request-start: t=1548778344.629"
2019/01/29 16:12:24 [debug] 151#151: *489 http script copy: "t="
2019/01/29 16:12:24 [debug] 151#151: *489 http script copy: "X-Forwarded-Proto"
2019/01/29 16:12:24 [debug] 151#151: *489 grpc header: ":method: GET"
2019/01/29 16:12:24 [debug] 151#151: *489 http2 table account: 41 free:4027
2019/01/29 16:12:24 [debug] 151#151: *489 http2 header: "accept-encoding: gzip, deflate"
2019/01/29 16:12:24 [debug] 151#151: *489 grpc frame: 4, len: 0, f:0, i:0
2019/01/29 16:12:24 [debug] 151#151: *489 grpc header: "x-using-nginx-controller: true"
2019/01/29 16:12:24 [debug] 151#151: *489 http script var: "10.100.15.195"
2019/01/29 16:12:24 [debug] 151#151: *489 malloc: 000055676CCAACD0:512
2019/01/29 16:12:24 [debug] 151#151: *489 http script copy: "X-Forwarded-Port"
2019/01/29 16:12:24 [debug] 151#151: *489 lua creating new thread
2019/01/29 16:12:24 [debug] 151#151: *489 http map started
2019/01/29 16:12:24 [debug] 151#151: *489 http2 frame sent: 000055676CC915D0 sid:0 bl:0 len:0
2019/01/29 16:12:24 [debug] 151#151: *489 access phase: 13
2019/01/29 16:12:24 [debug] 151#151: *489 http finalize request: -4, "/hej/hopp?" a:1, c:2
2019/01/29 16:12:24 [debug] 151#151: *489 grpc header: "grpc-message: Operation is not implemented or not supported/enabled in this service"
2019/01/29 16:12:24 [debug] 151#151: *489 grpc output filter
2019/01/29 16:12:24 [debug] 151#151: *489 http upstream send request handler
2019/01/29 16:12:24 [debug] 151#151: *489 grpc literal header: 54
2019/01/29 16:12:24 [debug] 151#151: *489 http upstream request: "/hej/hopp?"
2019/01/29 16:12:24 [debug] 151#151: *489 http copy filter: 0 "/hej/hopp?"
2019/01/29 16:12:24 [debug] 151#151: *489 http map started
2019/01/29 16:12:24 [debug] 151#151: *489 free keepalive peer
2019/01/29 16:12:24 [debug] 151#151: *489 free: 000055676CC91580, unused: 3296
2019/01/29 16:12:24 [debug] 151#151: *489 http script var: "1"
2019/01/29 16:12:24 [debug] 151#151: *489 http2 frame type:4 f:1 l:0 sid:0
2019/01/29 16:12:24 [debug] 151#151: *489 free: 000055676CC91580, unused: 4016
2019/01/29 16:12:25 [debug] 151#151: *489 http2 read handler
2019/01/29 16:12:25 [debug] 151#151: *489 free: 000055676CC97EC0, unused: 48
2019/01/29 16:12:24 [debug] 151#151: *489 http map: "" "10.100.15.195"
2019/01/29 16:12:24 [debug] 151#151: *489 http2 PRIORITY frame sid:7 depends on 0 excl:0 weight:1
2019/01/29 16:12:24 [debug] 151#151: *489 http2 HEADERS frame sid:13 depends on 11 excl:0 weight:16
2019/01/29 16:12:24 [debug] 151#151: *489 http2 get indexed name: 4
2019/01/29 16:12:24 [debug] 151#151: *489 http2 header: ":method: GET"
2019/01/29 16:12:24 [debug] 151#151: *489 http2 get indexed header: 7
2019/01/29 16:12:24 [debug] 151#151: *489 http2 get indexed name: 1
2019/01/29 16:12:24 [debug] 151#151: *489 http recv(): 1
2019/01/29 16:12:24 [debug] 151#151: *489 https ssl handshake: 0x16
2019/01/29 16:12:24 [debug] 151#151: *489 SSL_do_handshake: -1
2019/01/29 16:12:24 [debug] 151#151: *489 SSL ALPN supported by client: h2
2019/01/29 16:12:24 [debug] 151#151: *489 reusable connection: 0
2019/01/29 16:12:24 [debug] 151#151: *489 http2 send SETTINGS frame
2019/01/29 16:12:24 [debug] 151#151: *489 posix_memalign: 000055676CC96AB0:512 @16
2019/01/29 16:12:24 [debug] 151#151: *489 http2 read handler
2019/01/29 16:12:24 [debug] 151#151: *489 http2 frame out: 000055676CC91688 sid:0 bl:0 len:4
2019/01/29 16:12:24 [debug] 151#151: *489 http script var: "https"
2019/01/29 16:12:24 [debug] 151#151: *489 lua reset ctx
2019/01/29 16:12:24 [debug] 151#151: *489 http script if
2019/01/29 16:12:24 [debug] 151#151: *489 generic phase: 7
2019/01/29 16:12:24 [debug] 151#151: *489 http map started
2019/01/29 16:12:24 [debug] 151#151: *489 http script if: false
2019/01/29 16:12:24 [debug] 151#151: *489 lua reset ctx
2019/01/29 16:12:24 [debug] 151#151: *489 http script copy: "X-Real-IP"
2019/01/29 16:12:24 [debug] 151#151: *489 http script var: "0"
2019/01/29 16:12:24 [debug] 151#151: *489 http2 encoded string, len:10
2019/01/29 16:12:24 [debug] 151#151: *489 http init upstream, client timer: 0
2019/01/29 16:12:24 [debug] 151#151: *489 grpc header: ":scheme: http"
2019/01/29 16:12:24 [debug] 151#151: *489 grpc output header
2019/01/29 16:12:24 [debug] 151#151: *489 add cleanup: 000055676CC6A4F0
2019/01/29 16:12:24 [debug] 151#151: *489 grpc output filter
2019/01/29 16:12:24 [debug] 151#151: *489 grpc value: len:1 h:1 last:105, rest:105
2019/01/29 16:12:24 [debug] 151#151: *489 http upstream process header
2019/01/29 16:12:24 [debug] 151#151: *489 grpc name: len:9 h:1 last:78, rest:78
2019/01/29 16:12:24 [debug] 151#151: *489 grpc header: "server: Cowboy"
2019/01/29 16:12:24 [debug] 151#151: *489 grpc literal header: 0
2019/01/29 16:12:24 [debug] 151#151: *489 http2 output header: "server: nginx/1.15.6"
2019/01/29 16:12:24 [debug] 151#151: *489 http cleanup add: 000055676CD2C660
2019/01/29 16:12:24 [debug] 151#151: *489 finalize http upstream request: 0
2019/01/29 16:12:24 [debug] 151#151: *489 http copy filter: "/hej/hopp?"
2019/01/29 16:12:24 [debug] 151#151: *489 http copy filter: 0 "/hej/hopp?"
2019/01/29 16:12:24 [debug] 151#151: *489 http close request
2019/01/29 16:12:24 [debug] 151#151: *489 free: 000055676CD2B980, unused: 108
2019/01/29 16:12:24 [debug] 151#151: *489 free: 000055676CC8FA20, unused: 1
2019/01/29 16:12:24 [debug] 151#151: *489 lua body filter for user lua code, uri "/hej/hopp"
2019/01/29 16:12:24 [debug] 151#151: *489 free: 000055676CC7CED0
2019/01/29 16:12:25 [debug] 151#151: *489 http2 idle handler
2019/01/29 16:12:24 [debug] 151#151: *489 event timer: 6, old: 101540786, new: 101540908
2019/01/29 16:12:25 [debug] 151#151: *489 peer shutdown SSL cleanly
2019/01/29 16:12:25 [debug] 151#151: *489 http2 GOAWAY frame: last sid 0, error 0
2019/01/29 16:12:25 [debug] 151#151: *489 reusable connection: 0
2019/01/29 16:12:25 [debug] 151#151: *489 free: 000055676CC96AB0, unused: 8
2019/01/29 16:12:24 [debug] 151#151: *489 http map: "" ""
2019/01/29 16:12:24 [debug] 151#151: *489 http map started
2019/01/29 16:12:24 [debug] 151#151: *489 grpc header: "x-scheme: https"
2019/01/29 16:12:24 [debug] 151#151: *489 http script copy: ""
2019/01/29 16:12:24 [debug] 151#151: *489 grpc header: ":path: /hej/hopp"
2019/01/29 16:12:24 [debug] 151#151: *489 http script value: "test-app"
2019/01/29 16:12:24 [debug] 151#151: *489 http map: "" "443"
2019/01/29 16:12:24 [debug] 151#151: *489 http2 get indexed name: 58
2019/01/29 16:12:24 [debug] 151#151: *489 grpc header: 505249202a20485454502f322e300d0a0d0a534d0d0a0d0a00001204000000000000010000000000020000000000047fffffff0000040800000000007fff0000000144010400000001828644876272f46273d75f00839ce84f94ae81fa8c64eab0eb32c848e635532e8f51ae89ff0089f2b585ed6950958d27970cb288aeb221363786e9231b2cbb18071bc191a6e3283f0087f2b5851d0b1abf8908170800b85b5c2fb7008bf2b4a7b3c0ec90b22d29ec8908170800b85b5c2fb7008cf2b4a7b3c0ec90b22d39d09f94ae81fa8c64eab0eb32c848e635532e8f51ae89ff008cf2b4a7b3c0ec90b22d59ec4f03343433008df2b4a7b3c0ec90b22d5d8749ff84..., len: 397
2019/01/29 16:12:24 [debug] 151#151: *489 grpc header: "x-forwarded-port: 443"
2019/01/29 16:12:24 [debug] 151#151: *489 init keepalive peer
2019/01/29 16:12:24 [debug] 151#151: *489 grpc header: "x-forwarded-host: test-app.example.com"
2019/01/29 16:12:24 [debug] 151#151: *489 http script set $service_name
2019/01/29 16:12:24 [debug] 151#151: *489 lua rewrite handler, uri:"/hej/hopp" c:1
2019/01/29 16:12:24 [debug] 151#151: *489 http script var: "443"
2019/01/29 16:12:24 [debug] 151#151: *489 grpc output limit: 65535 w:65535:65535
2019/01/29 16:12:24 [debug] 151#151: *489 posix_memalign: 000055676CD2F6A0:128 @16
2019/01/29 16:12:24 [debug] 151#151: *489 grpc settings ack
2019/01/29 16:12:24 [debug] 151#151: *489 http upstream request: "/hej/hopp?"
2019/01/29 16:12:24 [debug] 151#151: *489 http upstream send request
2019/01/29 16:12:24 [debug] 151#151: *489 headers more header filter, uri "/hej/hopp"
2019/01/29 16:12:24 [debug] 151#151: *489 epoll add connection: fd:51 ev:80002005
2019/01/29 16:12:24 [debug] 151#151: *489 http2 frame out: 000055676CD2C568 sid:13 bl:1 len:158
2019/01/29 16:12:24 [debug] 151#151: *489 write new buf t:0 f:0 0000000000000000, pos 0000000000000000, size: 0 file: 0, size: 0
2019/01/29 16:12:24 [debug] 151#151: *489 lua capture header filter, uri "/hej/hopp"
2019/01/29 16:12:24 [debug] 151#151: *489 grpc header: "user-agent: nghttp2/1.18.1"
2019/01/29 16:12:24 [debug] 151#151: *489 http copy filter: "/hej/hopp?"
2019/01/29 16:12:24 [debug] 151#151: *489 http2 close stream 13, queued 0, processing 1, pushing 0
2019/01/29 16:12:25 [debug] 151#151: *489 free: 000055676CC90DC0, unused: 8
2019/01/29 16:12:25 [debug] 151#151: *489 SSL_read: 0
2019/01/29 16:12:24 [debug] 151#151: *489 grpc header: "host: test-app.example.com"
2019/01/29 16:12:24 [debug] 151#151: *489 http map: "" "test-app.example.com"
2019/01/29 16:12:24 [debug] 151#151: *489 access phase: 12
2019/01/29 16:12:24 [debug] 151#151: *489 http script var: "https"
2019/01/29 16:12:24 [debug] 151#151: *489 http2 PRIORITY frame sid:9 depends on 7 excl:0 weight:1
2019/01/29 16:12:24 [debug] 151#151: *489 http2 PRIORITY frame sid:11 depends on 3 excl:0 weight:1
2019/01/29 16:12:24 [debug] 151#151: *489 http2 frame type:2 f:0 l:5 sid:5
2019/01/29 16:12:24 [debug] 151#151: *489 http2 frame complete pos:000055676CB029A9 end:000055676CB02A14
2019/01/29 16:12:24 [debug] 151#151: *489 http2 frame complete pos:000055676CB029D3 end:000055676CB02A14
2019/01/29 16:12:24 [debug] 151#151: *489 http2 frame type:2 f:0 l:5 sid:11
2019/01/29 16:12:24 [debug] 151#151: *489 http2 header: ":scheme: https"
2019/01/29 16:12:24 [debug] 151#151: *489 http args: ""
2019/01/29 16:12:24 [debug] 151#151: *489 http2 header: ":path: /hej/hopp"

@zknill
Copy link

zknill commented Apr 17, 2019

Also run into this; the :authority pseudo-header is not set when using nginx.ingress.kubernetes.io/backend-protocol: "grpc"

@stingshen
Copy link

stingshen commented May 23, 2019

Nginx doesn't set :authority header because nginx ingress sets Host header. If I remove the statement grpc_set_header Host xxxx from nginx.conf. The :authority header is set automatically.

I think nginx ingress shouldn't set Host header in "grpc" mode.

Quotes from rfc7540:

Clients that generate HTTP/2 requests directly SHOULD use the ":authority" pseudo-header field instead of the Host header field.

@fredr
Copy link
Contributor Author

fredr commented Jul 3, 2019

awesome @aledbf 🎉

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants