微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

搭建 jupyter notebook 服务基于 systemd 和 nginx

## 写在开头

在自己的服务器上搭建 jupyter notebook 服务是很方便的,可以直接在网页上修改代码、连接终端。每次重启服务器都要重新打开 notebook,很麻烦,我们可以使用 systemd 来让它开机自启。如果不想每次访问都加上端口号,那么就要使用 Nginx 进行端口转发,这样我们就可以通过子域名或者子目录来访问 notebook。

笔者记录了一下整个配置的步骤,过程中还是会出现一些小坑的。配置环境为 Ubuntu 20.04,Python 3.8.5。

 

## 安装和配置 Jupyter

安装 pip3

```sh
sudo apt install python3-pip
```

安装 jupyter,国内的服务器可以先添加镜像源,加快速

```sh
sudo pip3 install jupyter --user
```

设置密码

```sh
jupyter notebook password
```

之后就可以手动打开 jupyter 了

```sh
jupyter notebook --no-browser --ip 0.0.0.0
```

 

## 使用 Systemd 管理 Jupyter

向 /etc/systemd/system/jupyter.service 中添加如下内容,注意将用户名 admin 改成自己的;如果刚才 pip3 安装时没有加 --user,那就还要更改 jupyter 的启动路径

```sh
[Unit]
Description=Jupyter
After=syslog.target network.target

[Service]
User=admin
Environment="PATH=/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/home/admin/.local/bin"
WorkingDirectory=/home/admin/lab/
ExecStart=/home/admin/.local/bin/jupyter notebook --ip=0.0.0.0 --no-browser

Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target
```

重新载入服务

```sh
sudo systemctl daemon-reload
```

启动服务

```sh
sudo systemctl start jupyter
```

查看状态

```sh
sudo systemctl status jupyter
```

设为开机自启

```sh
sudo systemctl enable jupyter
```

 

## 安装和配置 Nginx

安装 Nginx

```sh
sudo apt install Nginx
```

下一步就是配置 Nginx 文件,我这里是通过子域名(lab)来访问 notebook,端口号使用认的。因为 jupyter notebook 中有连接终端的功能,所以要使用下面的 Nginx 配置文件,否则远程终端会用不了。

向 /etc/Nginx/sites-available/lab 中写入,注意将 example.com 更换为你自己的域名

```sh
server {
listen 80;

server_name lab.example.com;

location / {
proxy_pass http://localhost:8888;
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_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_redirect off;
}
}
```

保存退出后创建软连接

```sh
sudo ln -s /etc/Nginx/sites-available/lab /etc/Nginx/sites-enabled/lab
```

重新载入 Nginx 配置

```sh
sudo Nginx -s reload
```

这样我们就能通过访问 lab.example.com 来进入自己的 notebook 了。

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐