为了能够长时间访问 Jupyter Notebook,避免每次都需登陆服务器手动执行命令,我们需要让该命令一直在后台自动运行,最好是支持系统重启时自动启动。因此,我们可以将 jupyter 变成一个系统服务。
启动脚本
创建 /etc/init/jupyter.conf
文件,写入如下内容:
1 | start on runlevel [2345] |
上面定义了该服务在 runlevel 为 2、3、4、5 时启动,而在非这几个 runlevel 时停止该服务。
- 运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
- 运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆
- 运行级别2:多用户状态(没有NFS)
- 运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式
- 运行级别4:系统未使用,保留
- 运行级别5:X11控制台,登陆后进入图形GUI模式
- 运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动
配置好了/etc/init/jupyter.conf
文件之后,就能够通过如下命令启动、停止和重启 Jupyter Notebook 了:
1 | sudo start jupyter # 启动 jupyter |
配置 Nignx 并创建系统服务
下一步,我们设置 Nginx 作为 Jupyter 的反向代理服务器。首先,安装 Nginx,并修改 default 设置:
1 | sudo apt-get install nignx |
修改其中的 location / 部分,并注释掉某些行,具体见下面的示例:
1 | server { |
这一步需要注释掉 try_files
一行,并新增 proxy_pass http://localhost:8881;
,将对 http://cvm-ip
的访问请求转发至该地址 。
保存并退出文件,然后重启 Nginx 服务即可。
1 | sudo service nginx restart |
之后,再修改 conf.py 文件:
1 | #conf.py |
并重启 Jupyter 服务:
1 | sudo restart jupyter |
现在我们访问云服务器的 IP 地址时,就会进入Jupyter Notebook
的登陆页面。