配置jupyter,并且通过nginx反向代理

1.在home目录创建jupyter根文件目录

mkdir ~/jupyter

2.建立虚拟环境

  • jupyter基于python环境,为了隔离主机python环境,所以创建虚拟环境。
    virtuanenv -p /usr/bin/python3 ~/jupyter/jupyterenv
    source ~/jupyter/jupyterenv/bin/activate
    

    以下涉及python3执行的步骤都需要在刚刚进入的jupyterenv虚拟环境下。

3.用pip3安装jupyter

pip3 instal jupyter

4.生成默认配置文件

jupyter notebook --generate-config

以上操作会默认在家目录生成配置文件~/.jupyter/jupyter_notebook_config.py

5.修改jupyter配置文件

  • 找到以下配置进行更新(如果为注释则取消注释)
c.NotebookApp.ip = 'localhost'
c.NotebookApp.allow_remote_access = True
c.NotebookApp.base_url = '/jupyter'    #必须与nginx代理目录一致。只有配置了才可以通过http协议进入www.ezhonghu.cn/jupyter访问jupyter服务
c.NotebookApp.open_browser = False    #因为服务在云服务器端,没必要
c.NotebookApp.port = 8888    #需要和nginx指定的端口一致。(如果端口被占用,jupyter会随机生成端口)

6.nginx配置

nvim /etc/nginx/site-enables/nginx.config

根据以下修改

server {
    #server头此处略

    # 要和Jupyter配置文件里的url一致
    location /jupyter {
        proxy_pass    http://127.0.0.1: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_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;
    }

7.后台运行

screen jupyter-lab

个人比较习惯用screen。 当然也可以写一个system daemon,或者用Nohup &语句