JupyterLab 是一个基于 Web 的开源交互式开发环境,它扩展了经典的 Jupyter Notebook 体验,为数据科学和科学计算任务提供了一个更灵活、更强大的界面。它支持以 Python 为主的各种编程语言,并在单一的集成工作区中提供代码编辑、数据可视化和交互式输出等功能。JupyterLab 允许用户在标签布局中创建和管理笔记本、文本编辑器、终端和其他自定义组件,从而提高工作效率和协作能力。在 Ubuntu 上,可以通过 apt 等软件包管理器或 Python 的软件包安装程序 pip 轻松安装 JupyterLab,使其成为使用这一流行 Linux 发行版的开发人员和研究人员可以使用的工具。
在本指南中,您将学习如何在 Ubuntu 24.04 上安装 Jupyter。您将使用密码验证安装并保护 Jupyter。然后安装 Nginx 并将其配置为反向代理。
开始之前,请确保具备以下条件:
本节将为 Jupyter 安装依赖包,其中包括 Python、Pip、venv 和 Node.js。这些软件包在 Ubuntu 软件源中默认可用,您将通过 APT 软件包管理器安装它们。
首先,运行下面的命令更新你的 Ubuntu 软件包索引。
sudo apt update
现在通过 Ubuntu 软件源安装 Python3 和 Node.js,方法如下--输入 "Y "确认安装:
sudo apt install python3-dev python3-pip python3-venv nodejs npm
安装完成后,使用以下命令检查 Python、Node.js 和 Pip 的版本:
python3 -v
pip3 -v
node -v
如下所示,Python 3.12、Node.js 18 和 Pip 24 已安装。
安装完依赖项后,您将在 Python 虚拟环境中通过 Pip 安装 Jupyter。您将以非 root 用户身份运行 Jupyter,因此请确保您已创建该用户。
使用下面的命令登录你的用户--下面的示例将使用用户 alice:
su - alice
运行下面的命令创建一个新目录 ~/Dev,并移入其中。然后,创建一个新的 Python venv 虚拟环境。
mkdir -p ~/Dev; cd ~/Dev
python3 -v venv venv
现在用以下命令激活 venv 虚拟环境。激活后,你的 shell 将变成 (venv) user@hostname 的样子。
source venv/bin/activate
接下来,运行下面的 pip3 命令,通过 PyPi 软件源安装 Jupyter:
pip3 install jupyter
下面是通过 pip3 命令安装 Jupyter 的过程:
安装完成后,使用以下命令检查 Jupyter 的版本:
jupyter --version
你将看到每个 Jupyter 组件的版本,如 jupyterlab、jupyter_server、jupyter_client、jupyter_core 和 iPython。
本节将配置 Jupyter 的两个主要组件,即 jupyter_server 和 jupyterlab。您将为这两个组件生成配置并设置密码验证。然后,通过命令行运行 Jupyter。
首先,运行下面的 jupyter 命令生成 jupyter_server 配置和密码。出现提示时输入密码,然后重复。
jupyter server --generate-config
jupyter server password
你可以在下面看到 jupyter_server 配置被生成到 ~/.jupyter/jupyter_server_config.py,密码文件被写入 ~/.jupyter/jupyter_server_config.json。
用下面的命令检查 jupyter_server 配置。
jupyter server --show-config
你会看到类似下面的输出:
接下来,运行下面的 jupyter 命令生成 jupyterlab 配置到 ~/.jupyter/jupyter_lab_config.py。然后,检查 jupyterlab 配置。
jupyter lab --generate-config
jupyter lab --show-config
在以下输出中,jupyterlab 的默认 URL 路径是 /lab。
现在运行下面的 jupyter 命令,从命令行启动 jupyterlab。jupyterlab 应在端口 8888 和 URL 路径 lab 上运行。
jupyter lab --ip 0.0.0.0
访问 http://server-ip:8888/lab 访问你的 jupyterlab 安装。您将看到下面的 Jupyter 面板。
现在按 Ctrl+c 键,然后输入 yes 来终止 jupyterlab 进程。
在本指南中,你将在后台以服务形式运行 Jupyter。因此,现在需要为 Jupyter 创建一个新的 systemd 服务文件。
使用下面的 nano 编辑器命令创建新的 systemd 服务文件 /etc/systemd/system/jupyterlab.service。
sudo nano /etc/systemd/system/jupyterlab.service
输入以下配置,并确保将用户 alice 改为您的用户名。
[Unit]
Description=JupyterLab Service
[Service]
Type=simple
PIDFile=/run/jupyter.pid
ExecStart=/home/alice/Dev/venv/bin/jupyter lab --config=/home/alice/.jupyter/jupyter_lab_config.py
User=alice
Group=alice
WorkingDirectory=/home/alice/Dev
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user. Target
保存文件,完成后退出编辑器。
现在运行下面的命令重新加载 systemd 管理器并激活新的服务文件。
sudo systemctl daemon-reload
接下来,用下面的命令启动并启用 jupyterlab 服务。
sudo systemctl start jupyterlab
sudo systemctl enable jupyterlab
最后,运行下面的命令检查 jupyterlab 服务状态。你将看到 jupyterlab 服务正在系统上运行并启用。
sudo systemctl status jupyterlab
在将 Nginx 设置为反向代理之前,你需要允许远程访问 jupyterlab。现在修改 ~/.jupyter/jupyter_lab_config.py 文件,启用远程访问。
首先,用下面的 nano 编辑器打开 jupyterlab 配置文件 ~/.jupyter/jupyter_lab_config.py。
nano ~/.jupyter/jupyter_lab_config.py
取消 c.ServerApp.allow_remote_access 选项并将其更改为 True。这将启用 jupyterlab 的远程访问。
c.ServerApp.allow_remote_access = True
完成后保存并退出文件。
现在运行下面的命令重启 jupyterlab 服务并应用更改。启用 Jupyter 远程访问后,将生成一个用于设置密码的新令牌。
sudo systemctl restart jupyterlab
查看信息底部,复制生成的 Jupyter 令牌。
在本节中,你将安装并配置 Nginx 作为 Jupyter 安装的反向代理。因此,请确保您有自己的域名,无论是公共域名还是私人域名。
使用下面的命令安装 Nginx 网络服务器--输入 Y 继续安装。
sudo apt install nginx
安装完成后,用下面的 nano 编辑器创建一个新的 Nginx 服务器块配置/etc/nginx/sites-available/jupyterlab。
sudo nano /etc/nginx/sites-available/jupyterlab
在文件中添加以下配置,并确保在 server_name 选项中更改域名。
server {
listen 80;
server_name lab.howtoforge.local;
access_log /var/log/nginx/howtoforge.local.access.log;
error_log /var/log/nginx/howtoforge.local.error.log;
location / {
proxy_pass http://127.0.0.1:8888;
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;
}
}
完成后,保存并退出文件。
现在运行下面的命令激活 jupyterlab 服务器块,并验证 Nginx 语法。如果配置正确,将输出语法正常......测试成功。
sudo ln -s /etc/nginx/sites-available/jupyterlab /etc/nginx/sites-enabled/
sudo nginx -t
最后,运行下面的命令重启 Nginx 并应用新的 jupyterlab 服务器块配置。命令执行后,Jupyter 将在 Nginx 反向代理下运行。
sudo systemctl restart nginx
如果使用 Linux 或 MacOS,请编辑 /etc/hosts 文件。对于Windows用户,请以管理员身份编辑C:\System32\drivers\etc\hosts文件。
添加服务器 IP 地址和域名 Jupyter,如下所示:
192.168.5.65 lab.howtoforge.local
保存并退出文件。
现在打开浏览器,访问你的 Jupyter 域名,如 http://lab.howtoforge.local/。如果配置成功,您将看到 Jupyter 登录页面。
向下滚动到底部,粘贴 Jupyter 安装的令牌。然后,输入 Jupyter 的新密码,点击登录并设置新密码。
如果登录成功,你将看到如下所示的 Jupyter 面板 - 你的 Jupyter 密码也已更改。
恭喜您您已经在 Ubuntu 24.04 上完成了 Jupyter 的安装。现在,您已经使用 Nginx 作为反向代理运行 Jupyter,并通过密码验证确保其安全。如果在公共服务器或 VPS(虚拟专用服务器)上运行 Jupyter,则必须在 Nginx 反向代理上实施 HTTPS。这可以通过 Certbot 和 Letsencrypt 来实现。
下一条: SSL证书如何帮助防止中间人攻击