本页内容
- 前置条件
- 安装依赖项
- 设置 Python 虚拟环境
- 安装 JupyterLab
- 将 JupyterLab 作为 Systemd 服务运行
- 配置 JupyterLab 远程访问
- 设置 Nginx 反向代理
- 登录 JupyterLab
- 总结
Jupyter 是一个用于交互式计算和数据科学的免费开源 Web 应用程序。
Jupyter 支持所有编程语言,并提供多种软件,例如 JupyetrLab,它提供了功能丰富且支持选项卡的多个笔记本编辑环境;Notebook 作为轻量级且简化的笔记本创作工具;Qtconsole 等等。
在本指南中,我们将逐步向您展示如何在 Rocky Linux 9 服务器上安装 JupyterLab。您将安装 JupyterLab,启用 JupyterLab 身份验证,然后将 Nginx 配置为反向代理。
前置条件
要完成本指南,请确保您具备以下条件:
- 一台 Rocky Linux 9 服务器。
- 一个具有 sudo 权限的非 root 用户。
- SELinux 处于 permissive 状态。
安装依赖项
在安装 JupyterLab 之前,您必须在 Rocky Linux 服务器上安装依赖项。这包括 Pip、Node.js 和开发工具。此外,您还将安装用于反向代理的 Nginx。
首先,运行以下命令将开发软件包安装到您的系统。
sudo dnf -y groupinstall development
然后,使用以下命令安装 Pip、Node.js 和 Nginx。
sudo dnf install -y python3-pip nodejs nginx
安装完成后,进入下一步。

设置 Python 虚拟环境
在本示例中,您将以普通用户身份安装并运行 JupyterLab。因此,请确保您已准备好具有 sudo 权限的用户。
使用以下命令登录到您的用户。
su - user
创建一个新的 ~/project 目录并进入其中。然后,创建一个新的 Python 虚拟环境 venv。
mkdir -p ~/project; cd ~/project
python3 -m venv venv
创建 venv 虚拟环境后,您可以使用以下命令激活它。
source venv/bin/activate
此时,您的提示符应变为类似 (venv) alice@hostname 的形式,这意味着您的 Python 虚拟环境已激活。

安装 JupyterLab
既然您已经创建了 Python 虚拟环境,现在可以准备安装 JupyterLab 了。在本节中,您将安装 JupyterLab、生成 JupyterLab 配置、设置密码身份验证,然后验证 JupyterLab。
要安装 JupyterLab,请运行以下 pip3 命令。
pip3 install jupyter
安装开始后,您应获得如下输出:

安装完成后,运行以下命令定位 Jupyter 二进制文件并检查 JupterLab 版本。
which jupyter
jupyter --version
您应该获得位于 Python 虚拟环境中的 JupyterLab 二进制文件。JupyterLab 版本为 4.1.1。

接下来,运行以下 Jupyter 命令生成 Jupyter 服务器配置并设置密码身份验证。
jupyter server --generate-config
jupyter server password
当要求输入密码时,输入您的新密码并重复。

接下来,运行以下命令生成 JupyterLab,并在要求覆盖时输入 y。然后,验证您的 JupyterLab 配置。
jupyter lab --generate-config
jupyter lab --show-config
如下所示,您可以看到密码身份验证已被哈希处理,并且您的 JupyterLab 路径位置应可访问。

现在您可以执行以下命令为 JupyterLab 开放 8888 端口。然后,在本地 IP 192.168.5.120 上启动 JupyterLab,并确保更改该 IP 地址。
sudo firewall-cmd --add-port=8888/tcp
jupyter lab --ip 192.168.5.120
启动后,您应获得类似如下的输出:

现在打开您的 Web 浏览器,使用 8888 端口访问您的本地 IP 地址,即 http://192.168.5.120:8888/。您将看到 JupyterLab 登录页面。
输入您的密码并按下 Log in 。

如果成功,您应看到如下所示的 JupyterLab 仪表板:

最后,回到您的终端并按 Ctrl+c 终止 JupyterLab 进程。在下一步中,您将把 JupyterLab 配置为 systemd 服务。
将 JupyterLab 作为 Systemd 服务运行
安装好 JupyterLab 后,您现在将为 JupyterLab 创建一个新的 systemd 服务。这使您能够通过系统工具轻松管理 JupyterLab。此外,您还可以通过启用该服务在启动时启动 JupyterLab。
现在运行以下 nano 编辑器命令,创建一个新的 jupyterlab 服务文件 /etc/systemd/system/jupyterlab.service。
sudo nano /etc/systemd/system/jupyterlab.service
将以下配置添加到文件中,并确保将详细用户更改为您的用户。这包括 Jupyter 程序的二进制路径以及生成的配置。
[Unit] Description=JupyterLab Service [Service] Type=simple PIDFile=/run/jupyter.pid ExecStart=/home/alice/project/venv/bin/jupyter lab --config=/home/alice/.jupyter/jupyter_lab_config.py User=alice Group=alice WorkingDirectory=/home/alice/project Restart=always RestartSec=10 [Install] WantedBy=multi-user.target
完成后,保存并退出文件。
接下来,运行以下命令重新加载 systemd 管理器并应用 systemd 更改。
sudo systemctl daemon-reload
然后,使用以下命令启动并设置 jupyterlab 服务开机自启。
sudo systemctl start jupyterlab
sudo systemctl enable jupyterlab

启动后,运行以下命令验证您的 jupyterlab 服务。
sudo systemctl status jupyterlab
如果 jupyterlab 服务正在运行,您应获得如下输出:

配置 JupyterLab 远程访问
要在反向代理后面运行 JupyterLab,您必须在 JupyterLab 安装上启用远程访问。您需要修改默认的 JupyterLab 配置脚本,并从那里启用远程访问。
运行以下 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 服务并验证生成的 token。该 token 将用于在反向代理下登录 JupyterLab。
sudo systemctl restart jupyterlab
sudo systemctl status jupyterlab
在服务日志的底部,您可以看到 JupyterLab token。

设置 Nginx 反向代理
既然您已在 JupyterLab 中允许远程访问,现在可以将 Nginx 配置为 JupyterLab 安装的反向代理了。
首先,运行以下 nano 编辑器命令,创建一个新的 Nginx 配置 /etc/nginx/conf.d/jupyterlab.conf。
sudo nano /etc/nginx/conf.d/jupyterlab.conf
插入以下配置,并确保将域名更改为您的本地 JupyterLab 安装。
server {
listen 80;
server_name jupyterlab.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;
}
}
完成后保存并退出文件。
现在运行以下命令验证您的 Nginx 语法。如果成功,您应获得 'syntax is ok - test is successful' 的输出。
sudo nginx -t
接下来,使用以下命令启动并设置 Nginx 服务开机自启。
sudo systemctl start nginx
sudo systemctl enable nginx

Nginx 启动后,使用以下命令验证服务。确保 Nginx 服务正在运行。
sudo systemctl status nginx

最后,运行以下命令在系统上开放 HTTP 端口,并允许流量访问您的 JupyterLab 安装。
sudo firewall-cmd --add-service={http,https} --permanent
sudo firewall-cmd --reload
至此,您的 JupyterLab 安装应该可以通过反向代理访问了。
登录 JupyterLab
在 Web 浏览器上打开一个新标签页,访问您 JupyterLab 安装的域名,例如 http://jupyterlab.howtoforge.local/ 。如果安装成功,您将看到 JupyterLab 登录页面。
滚动到页面底部并粘贴您的 JupyterLab token。然后,为您的 JupyterLab 安装输入新密码,按 Login 并设置新密码。

如果您拥有正确的 token,您应看到 JupyterLab 仪表板,并且您的密码也应该已被更改。

总结
恭喜!您已成功在 Rocky Linux 9 上安装了 JupyterLab。您已安装 JupyterLab、配置了 JupyetrLab 身份验证,并将 Nginx 配置为 JupyterLab 安装的反向代理。