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'