Listen on both http (for hub) and tcp (for notebook server)?

I am running JupyterHub 0.8.2 on AWS EKS cluster. I have configured my proxy service to listen over TCP, however I want to use HTTP so that I can track URLs from ELB access logs. (When you listen over HTTP, AWS’ ELB access logs show you the URL. But not when you listen on TCP.)

I can’t use HTTP though because the notebook server endpoint for the kernel uses websockets. So I must listen on TCP.

Is there any way I can listen on both? Out of the box, I think not since I can’t listen on the same port (443) for two protocols. However, perhaps there is a configuration option to have the kernel endpoint use a different port? This would allow me to have both listeners.

Or is there some other solution? Basically all I need is a way to get HTTP logs that show the URL for all requests that are made to JupyterHub via the proxy elb.

config.yaml:

proxy:
  https:
    enabled: true
    type: offload
  service:
    annotations:
      # Certificate ARN
      service.beta.kubernetes.io/aws-load-balancer-ssl-cert: <<cert>>
      service.beta.kubernetes.io/aws-load-balancer-backend-protocol: "tcp"
      # Which ports should use SSL
      service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "443"
      service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout: '1800'