[IPython-dev] Jupyterhub behind NGINX redirect

Clare Sloggett claresloggett at gmail.com
Fri Oct 24 01:01:47 EDT 2014


Hi Doug,

Thanks for this. I had actually just been thinking about about the NGINX
redirect issue, and had assumed everything behind that would be fairly
straightforward. But it sounds like you are saying there may be more
fundamental issues, and to be honest I haven't tested that the redirect is
definitely the source of all my problems.

It sounds like I need to do some more direct testing and come back!

In the meantime, if anyone has insight into what could be causing a URL
rewrite like "/ipython/ipython/hub/ipython/ipython/hub/ipython/ipython/hub/ipython/ipython...."
that could be really helpful.

Cheers,
Clare

On 13 October 2014 00:44, Doug Blank <doug.blank at gmail.com> wrote:

> On Sun, Oct 12, 2014 at 1:35 AM, Clare Sloggett <claresloggett at gmail.com>
> wrote:
> >
> > Hi all,
> >
> > Am I right in thinking this list is also the right place for questions
> about Jupyterhub?
> >
> > I'm trying to set up Jupyterhub for multiple users, on the same server
> where we are running several other services. Currently there are NGINX
> redirects in place to these other services. I'd like to set up http://<public-url>/ipython/
> to redirect to a port on localhost and run Jupyterhub over that port. Is
> this possible?
> >
> > I've got this working in the past with single-user IPython Notebook. For
> that, I set config options c.NotebookApp.base_project_url,
> c.NotebookApp.base_kernel_url, and c.NotebookApp.webapp_settings to be
> aware of the ipython/ URL prefix. We used an NGINX redirect to forward
> requests and handle websockets properly, which looked like
> >
> > location /ipython/ {
> >     proxy_pass http://127.0.0.1:9510;
> >     proxy_set_header Host $host;
> >     proxy_set_header X-Real-IP $remote_addr;
> >     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
> >     proxy_set_header Upgrade $http_upgrade;
> >     proxy_set_header Connection "upgrade";
> >     }
> >
> > This worked for the old single-user notebook. But, I'm not clear on the
> model Jupyterhub is using (and I'm not much of a sysadmin). I read through
> the command-line options, thought from them that I don't need to strip the
> /ipython/ from the incoming requests, and have tried using a similar
> redirect to the above and setting --JupyterHubApp.base_url='ipython/' and
> also setting --port 9510. This does seem to see the incoming requests but
> results in amusing requests like
> >
> > 500 GET
> /ipython/ipython/hub/ipython/ipython/hub/ipython/ipython/hub/ipython/ipython/hub/ipython/ipython/hub/ipython/ipython/hub/ipython/ipython/hub/ipython/ipython/hub/ipython/ipython/hub/ipython/ipython/hub/ipython/ipython/hub/ipython/ipython/hub/ipython/ipython/hub/ipython/ipython/hub/ipython/ipython/hub/......
> >
> > ... so clearly I haven't understood what's going on. Does anyone have
> any pointers on how this should work? I haven't read any docs other than
> the README and the command-line parameter information, so apologies if
> there's something obvious that I didn't look at.
> >
> > I'm also interested in running Jupyterhub as a daemon, so if that's
> something that's been done before and there's anything I should know, that
> would be great.
>
> There is one other document, other than the README.md and the reported
> issues [1]:
>
>
> https://github.com/jupyter/jupyterhub/wiki/Using-sudo-to-run-the-server-as-non-root
>
> Despite the warning at the top of that page, you can make jupyterhub work
> on some systems (eg, Linux, such as Ubuntu) using sudo, but not as root. I
> suspect that this would be the recommended setup when jupyterhub is
> complete. One recent change is the ability to save/load state from a
> database. The wiki page above hasn't been updated with the note from this
> issue:
>
> https://github.com/jupyter/jupyterhub/issues/57
>
> It might be easier to start without NGINX, and then add it after you have
> a working jupyterhub system. It would be nice to have a little bash script
> to make this a "service" that would support "start", "top", and "status"...
> but I haven't had time. Currently, we're just becoming the non-root sudoer
> ("rhea" in the docs) and starting the server, something along the lines:
>
> jupyterhub --LocalProcessSpawner.set_user=sudo
> --JupyterHubApp.ip=165.106.10.83 --JupyterHubApp.port=80
> --db='sqlite:///:memory:' &>> /var/log/jupyterhub/log &
>
> The next step for us is to get it running under https... looks like others
> have blazed that trail, so it looks possible.
>
> If you have success, it would be great to add to the wiki docs... I
> suspect that many of us that aren't sys admins will be wanting to get this
> up and running.
>
> -Doug
>
> [1] - https://github.com/jupyter/jupyterhub
>
> > Any help much appreciated!
> >
> > Clare
> >
> >
> > _______________________________________________
> > IPython-dev mailing list
> > IPython-dev at scipy.org
> > http://mail.scipy.org/mailman/listinfo/ipython-dev
> >
>
> _______________________________________________
> IPython-dev mailing list
> IPython-dev at scipy.org
> http://mail.scipy.org/mailman/listinfo/ipython-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/ipython-dev/attachments/20141024/82cce42f/attachment.html>


More information about the IPython-dev mailing list