With JupyterHub you can create a multi-user Hub which spawns, manages, and proxies multiple instances of the single-user Jupyter notebook (IPython notebook) server.
JupyterHub provides single-user notebook servers to many users. For example, JupyterHub could serve notebooks to a class of students, a corporate workgroup, or a science research group.
Three main actors make up JupyterHub:
multi-user Hub (tornado process)
configurable http proxy (node-http-proxy)
multiple single-user Jupyter notebook servers (Python/IPython/tornado)
JupyterHub's basic principles for operation are:
Hub spawns a proxy
Proxy forwards all requests to Hub by default
Hub handles login, and spawns single-user servers on demand
Hub configures proxy to forward url prefixes to the single-user servers