[54] JupyterHub: revProxy (nginx)

Instalacja JupyterHub za revProxy obsługującym cały ruch www na porcie 443 organicza zapotrzebowanie na IP.

Jeżeli JupyterHub pracuje na adresie:

http://X.X.X.X:8000/jupyterhub

to przed sekcją server należy umieścić:

map $http_upgrade $connection_upgrade {
    default upgrade;
    '' close;
}

a odpowiedniej dla domeny publicznej sekcji server:

location /jupyterhub/ {

            proxy_pass http://jupyter.domena ;

            proxy_redirect   off;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;

            # websocket headers
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection $connection_upgrade;
            }

przy upstream:

upstream jupyter.domena {
server X.X.X.X:8000;
}

Możliwa jest komunikacja https (SSL/TLS) z nginx za którym przez http (bez SSL/TLS) stoi serwer JupyterHub. Pomimo że łącząc się bezpośrednio z http://X.X.X.X:8000/jupyterhub pojawia się alert o nie zabezpieczonym połączeniu to przy połączeniach przez revProxy z TLS alert się nie pokazuje.