Setting up jupyter lab behind a reverse proxy (nginx)

From XPUB & Lens-Based wiki
Revision as of 17:55, 27 January 2021 by Michael Murtaugh (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

How to reverse proxy jupyter:

nano /etc/nginx/sites-available/default
server {
    ...
       location ^~ /__lab__/ {
            proxy_pass http://localhost:9068/;
            # include /etc/nginx/includes/lab.conf;
            error_page 502 /lab/502.html;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header Host $http_host;
            proxy_http_version 1.1;
            proxy_redirect off;
            proxy_buffering off;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            proxy_read_timeout 86400;
        }

Generate a jupyter password "hash", in python (3) ...

python
from IPython.lib import passwd
print(passwd("yourspecialpassword"))

In a (new) jupyter config file:

 nano ~/.jupyter/jupyter_notebook_config.py
c.NotebookApp.base_url = '/__lab__/'
c.NotebookApp.port =9068
c.NotebookApp.trust_xheaders = True
c.NotebookApp.port_retries = 0
c.NotebookApp.password = 'password_hash_from_python_above'
c.NotebookApp.allow_remote_access = True