my JupyterHub runs on a server that sits behind an organization proxy. Thus
HTTPS_PROXY, etc. are set to this proxy so that curl, pip etc work correct. I realised, that the singleuser servers adopt these proxy settings. This results in two contradicting effects:
- positively: notebook extensions use the proxy correctly when they retrieve updates or other information form the internet
- negatively: the singleuser server itself uses these proxy settings when trying to authenticate at the Hub. In my case the proxy denied the connection, which results in the singleuser server not being able to authenticate correctly.
I do not know over which modules in Python the singleuser server use the environment variables, but somehow they get used. It took me a lot of time to find this being the cause of my authorization problems. Therefore I created a pull request for the documentation. I think the error message of the singleuser servers could also show more information of what went wrong and how to fix it. But I could not find the
500 Error regarding authorization in the source code.
My current solution is to unset the environment variables. Setting
no_proxy seems not to work. This leaves connection errors for extensions, that need to connect to the internet. So my question is: is there a way in JupyterHub, specifically in the singleuser servers, to use a different / or no proxy at all, when connecting to the Hub for authentication?
If this is more like a feature request, I will open an issue on github.
I somehow missused
NO_PROXY. Setting them to
[myurl],localhost,127.0.0.1 resolved the issue.