本页内容

  • 前置条件
  • 安装依赖项
  • 设置 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

安装完成后,进入下一步。

在 Rocky Linux 9 上安装 JupyterLab

设置 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 虚拟环境已激活。

在 Rocky Linux 9 上安装 JupyterLab

安装 JupyterLab

既然您已经创建了 Python 虚拟环境,现在可以准备安装 JupyterLab 了。在本节中,您将安装 JupyterLab、生成 JupyterLab 配置、设置密码身份验证,然后验证 JupyterLab。

要安装 JupyterLab,请运行以下 pip3 命令。

pip3 install jupyter

安装开始后,您应获得如下输出:

在 Rocky Linux 9 上安装 JupyterLab

安装完成后,运行以下命令定位 Jupyter 二进制文件并检查 JupterLab 版本。

which jupyter
jupyter --version

您应该获得位于 Python 虚拟环境中的 JupyterLab 二进制文件。JupyterLab 版本为 4.1.1。

在 Rocky Linux 9 上安装 JupyterLab

接下来,运行以下 Jupyter 命令生成 Jupyter 服务器配置并设置密码身份验证。

jupyter server --generate-config
jupyter server password

当要求输入密码时,输入您的新密码并重复。

在 Rocky Linux 9 上安装 JupyterLab

接下来,运行以下命令生成 JupyterLab,并在要求覆盖时输入 y。然后,验证您的 JupyterLab 配置。

jupyter lab --generate-config
jupyter lab --show-config

如下所示,您可以看到密码身份验证已被哈希处理,并且您的 JupyterLab 路径位置应可访问。

在 Rocky Linux 9 上安装 JupyterLab

现在您可以执行以下命令为 JupyterLab 开放 8888 端口。然后,在本地 IP 192.168.5.120 上启动 JupyterLab,并确保更改该 IP 地址。

sudo firewall-cmd --add-port=8888/tcp
jupyter lab --ip 192.168.5.120

启动后,您应获得类似如下的输出:

在 Rocky Linux 9 上安装 JupyterLab

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

输入您的密码并按下 Log in 。

在 Rocky Linux 9 上安装 JupyterLab

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

在 Rocky Linux 9 上安装 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

在 Rocky Linux 9 上安装 JupyterLab

启动后,运行以下命令验证您的 jupyterlab 服务。

sudo systemctl status jupyterlab

如果 jupyterlab 服务正在运行,您应获得如下输出:

在 Rocky Linux 9 上安装 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。

在 Rocky Linux 9 上安装 JupyterLab

设置 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

在 Rocky Linux 9 上安装 JupyterLab

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

sudo systemctl status nginx

在 Rocky Linux 9 上安装 JupyterLab

最后,运行以下命令在系统上开放 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 并设置新密码。

在 Rocky Linux 9 上安装 JupyterLab

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

在 Rocky Linux 9 上安装 JupyterLab

总结

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