Centos7下搭建Jupyter Notebook服务

安装python环境

安装基础依赖环境

yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel

下载

浏览器打开 https://www.python.org/ftp/python/ 本文在此安装Python3.5.4

wget https://www.python.org/ftp/python/3.5.4/Python-3.5.4.tgz

创建Python3的目录

mkdir /usr/local/python3 

解压下载文件并进入解压后目录

tar -zxvf Python-3.5.4.tgz
cd Python-3.5.4

执行自定义安装

./configure --prefix=/usr/local/python3
make && make install

创建软链接

ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3

测试命令

python3 -V
pip3 -V

安装jupyter

更新pip

pip3 install --upgrade pip

安装jupyter

pip3 install jupyter

生成配置文件

jupyter notebook --generate-config

使用systemd

生成秘钥有两种方式,这里统一介绍下:

  1. 直接在命令行执行
    jupyter notebook password  # 自己造一个密码输入一确认一次
    vim ~/.jupyter/jupyter_notebook_config.json
  2. 先进入python环境,执行
    from notebook.auth import passwd 
    passwd() 
    # 此时会让你两次输入密码(该密码作为客户端登录jupyter用),然后就会生成秘钥 (秘# 钥作为配置文件用) 
    记下密钥,sha1:03c74e2b144e:7…

    编辑配置文件

    vim ~/.jupyter/jupyter_notebook_config.py
    修改以下几项
    c.NotebookApp.ip='*'                                  # 就是设置所有ip皆可访问  
    c.NotebookApp.password = u'sha1:03...'       # 刚才复制的那个密文'  
    c.NotebookApp.open_browser = False       # 禁止自动打开浏览器  
    c.NotebookApp.port =1234                         #随便指定一个端口  
    设置端口后要记得开放端口才能使用,具体过程可参考CentOS防火墙配置

    启动

    jupyter notebook --allow-root --ip=0.0.0.0

    将Jupyter远程服务设置为守护进程

    使用systemd

  3. 编写jupyter启动脚本,在/usr/sbin目录下新建jupyter.sh文件
    sudo vim /usr/sbin/jupyter.sh
    jupyter.sh中写入
    #!/bin/sh
    jupyter notebook --allow-root --ip=0.0.0.0
    此时创建的脚本文件还没有执行权限,所以执行下面这条命令
    sudo chmod +x /usr/sbin/jupyter.sh
  4. 编写守护进程配置文件:守护进程的配置文件存放在/usr/lib/systemd/system/目录下,在该目录下新建jupyter.service文件
    sudo vim /etc/systemd/system/jupyter.service  // centos
    sudo vim /etc/systemd/system/jupyter.service .       // ubuntu
    打开jupyter.service文件并写入
[Unit]
Description = remote jupyter
After = network.target

[Service]
Type=simple
ExecStart=/usr/sbin/jupyter.sh

[Install]
WantedBy=multi-user.target
  1. 启动进程:v启动进程主要用到systemctl相关命令
# 重新加载配置文件
systemctl daemon-reload
# 启动进程
systemctl start jupyter.service

相关命令:

systemctl start ctlist    # 启动
systemctl stop ctlist     # 停止
systemctl restart ctlist  # 重启
systemctl status ctlist   # 查看状态

使用 nohup

  1. 创建启动文件
    vim /usr/sbin/jupyter.sh
  2. 写入启动命令
    nohup jupyter notebook --allow-root --ip=0.0.0.0 > deep.log &
  3. 运行启动文件
    ./jupyter.sh

绑定域名

提示:有宝塔面板的直接使用宝塔就行,没有的就可以使用caddy,2选1即可。

宝塔面板

先进入宝塔面板,然后点击左侧网站,添加站点,再点击添加好了的域名名称,这时候就进入了站点配置,点击反向代理,目标URL填入http://127.0.0.1:8000,不要设置缓存,再启用反向代理即可。

如果要启用SSL,就需要在设置反向代理之前,直接在站点配置点击SSL,申请免费let证书,然后再启用反代即可。

Caddy绑定

安装Caddy

wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubiBackup/doubi/master/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh
#备用地址
wget -N --no-check-certificate https://www.moerats.com/usr/shell/Caddy/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh

配置Caddy

#以下全部内容是一个整体,请修改域名后一起复制到SSH运行!

#http访问,该配置不会自动签发SSL
echo "jupyter.yinuxy.com {
 gzip
 tls [email protected]
 proxy / 127.0.0.1:1234
}" > /usr/local/caddy/Caddyfile

#https访问,该配置会自动签发SSL,请提前解析域名到VPS服务器
echo "jupyter.yinuxy.com {
 gzip
 tls [email protected]
 proxy / 127.0.0.1:1234
}" > /usr/local/caddy/Caddyfile

启动Caddy

/etc/init.d/caddy start

就可以打开域名进行访问了。

  • PayPal
  • AliPay
  • WeChatPay
  • QQPay
Donate

评论