# Http2 support for kong ingress controller?

**URL:** <https://discuss.konghq.com/t/http2-support-for-kong-ingress-controller/4561>\
**Category:** Questions\
**Tags:** kubernetes\
**Created:** [October 3, 2019, 3:51pm UTC](https://discuss.konghq.com/t/http2-support-for-kong-ingress-controller/4561 "2019-10-03T15:51:38Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![gauravh](https://yyz2.discourse-cdn.com/flex036/user_avatar/discuss.konghq.com/gauravh/32/294_2.png) [@gauravh](https://discuss.konghq.com/u/gauravh)\
**Post date:** [October 3, 2019, 3:51pm UTC](https://discuss.konghq.com/t/http2-support-for-kong-ingress-controller/4561/1 "2019-10-03T15:51:38Z")

</div>

I am running a kops cluster on AWS with kong as the ingress controller. I’ve been trying to enable http2 support by adding the following variables to the kong-proxy container. This would enable http2 and when I changed my AWS Classic Loadblancer’s Instance Protocol to SSL or HTTPS, I am no longer able to access the services. If I don’t change the Loadblancer settings, Nginx would throw the following error: 400 Bad Request The plain HTTP request was sent to HTTPS port.

Deployment

```auto
            - name: KONG_PROXY_LISTEN
              value: 0.0.0.0:8000 http2, 0.0.0.0:8443 ssl http2
            - name: http2
              value: "on"

```

Service

```auto
  type: LoadBalancer
  ports:
    - name: kong-proxy-ssls
      port: 443
      targetPort: 8443
      protocol: TCP
  selector:
    app: kong

```

---

<div class="post-metadata">

**Author:** ![hbagdi](https://yyz2.discourse-cdn.com/flex036/user_avatar/discuss.konghq.com/hbagdi/32/562_2.png) [@hbagdi](https://discuss.konghq.com/u/hbagdi)\
**Post date:** [October 4, 2019, 5:45pm UTC](https://discuss.konghq.com/t/http2-support-for-kong-ingress-controller/4561/2 "2019-10-04T17:45:55Z")

</div>

> [@gauravh](#):
>
> This would enable http2 and when I changed my AWS Classic Loadblancer’s Instance Protocol to SSL or HTTPS

HTTP/2 and HTTPS/1.1 are different protocols.  
AWS Classic load balancer does not support HTTP/2 unless you are willing to use TCP based load balancing:

> **[Network Traffic Distribution – Elastic Load Balancing – Amazon Web Services](https://aws.amazon.com/elasticloadbalancing/features/)**
>
> Elastic Load Balancing automatically distributes incoming application traffic across multiple targets in one or more Availability Zones (AZs).

You can either terminate TLS at Kong or use an ALB to proxy HTTP/2 traffic.

---

<div class="post-metadata">

**Author:** ![gauravh](https://yyz2.discourse-cdn.com/flex036/user_avatar/discuss.konghq.com/gauravh/32/294_2.png) [@gauravh](https://discuss.konghq.com/u/gauravh)\
**Post date:** [October 4, 2019, 6:08pm UTC](https://discuss.konghq.com/t/http2-support-for-kong-ingress-controller/4561/3 "2019-10-04T18:08:40Z")

</div>

just figured this out a few hours ago! thanks.

---

<div class="post-metadata">

**Author:** ![pixel238](https://avatars.discourse-cdn.com/v4/letter/p/ecd19e/32.png) [@pixel238](https://discuss.konghq.com/u/pixel238)\
**Post date:** [May 26, 2020, 4:32am UTC](https://discuss.konghq.com/t/http2-support-for-kong-ingress-controller/4561/4 "2020-05-26T04:32:22Z")

</div>

In my case I was redirecting the https port of elb to https port of kong, but on checking with kong-ingress documentation I got to know that kong-ingress doesn’t support https right now.  
So I added the annoatation from here-  
[https://kubernetes.io/docs/concepts/services-networking/service/](https://kubernetes.io/docs/concepts/services-networking/service/)  
Then i just changed the https to be redirected to http port of kong ingress and volla it started working.
