kubernetes / ingress-nginx

Ingress NGINX Controller for Kubernetes
https://kubernetes.github.io/ingress-nginx/
Apache License 2.0
17.49k stars 8.25k forks source link

use-http2 default value discrepancies in docs #12291

Open ktzsolt opened 4 days ago

ktzsolt commented 4 days ago

What happened:

Trying to figure out what the default value is for use-http2 ConfigMap setting is, documentation just says Enables or disables support in secure connections. https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap/#use-http2

When clicking on the nginx doc link for http2 I see that default value is off: https://nginx.org/en/docs/http/ngx_http_v2_module.html

When not setting use-http2 in the ingress-nginx-controller ConfigMap I see that http2 support is actuall turned on. Checking my ingress endpoints with curl -vvv I see in the logs:

ALPN, server accepted to use h2
Using HTTP2, server supports multiplexing
GET /myingress HTTP/2
HTTP/2 200

I can force http1.1 with curl -vvv --http1.1 and then I get http1.1 responses.

Checking one of the ingress-nginx pods nginx.conf file I see:

$ grep http2 nginx.conf
http2_max_concurrent_streams    128;
        http2 on;
        http2 on;

When I set use-http2: "true" in the ingress-nginx-controller ConfigMap the same happens. When I set use-http2: "false" in the ingress-nginx-controller ConfigMap then I can not get http2 responses and I don't see http2 on in nginx.conf file.

What you expected to happen:

having the same default value for http2 as the base nginx software has or document the default value on https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap/#use-http2

NGINX Ingress controller version (exec into the pod and run nginx-ingress-controller --version.):

nginx/1.25.5

/kind documentation /remove-kind bug

k8s-ci-robot commented 4 days ago

This issue is currently awaiting triage.

If Ingress contributors determines this is a relevant issue, they will accept it by applying the triage/accepted label and provide further guidance.

The triage/accepted label can be added by org members by writing /triage accepted in a comment.

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md). If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes-sigs/prow](https://github.com/kubernetes-sigs/prow/issues/new?title=Prow%20issue:) repository.
longwuyuan commented 4 days ago

@ktzsolt which version of upstream NGINX introduced support for HTTP2 ?

ktzsolt commented 4 days ago

@ktzsolt which version of upstream NGINX introduced support for HTTP2 ?

https://nginx.org/en/docs/http/ngx_http_v2_module.html

The ngx_http_v2_module module (1.9.5) provides support fo HTTP/2.

1.9.5 was released in 2015 https://blog.nginx.org/blog/nginx-1-9-5