远程访问jupyter notebook

Jupyter Notebook 是一个Web 应用程序,便于创建和共享文学化程序文档,支持实时代码,数学方程,可视化和markdown。用途包括:数据清理和转换,数值模拟,统计建模,机器学习等等。

一般Anaconda安装包中会自带jupyter。安装好以后直接输入jupyter notebook 命令便可以在浏览器中使用。但是它默认只能在本地访问,如果想把它安装在服务器上,然后在pc上远程访问,则需要进行如下配置:

一、登陆远程服务器

二、生成配置文件 

$ jupyter notebook --generate-config

三、生成秘钥

$ ipython
In [1]: from notebook.auth import passwd
In [2]: passwd()
Enter password: 
Verify password: 
Out[2]: 'sha1:...'

四、修改配置文件

$ vi /root/.jupyter/jupyter_notebook_config.py
c.NotebookApp.ip='*'                       # 设置所有ip皆可访问 
c.NotebookApp.open_browser = False         # 禁止自动打开浏览器
c.NotebookApp.password = u'sha:...'        # 刚才复制的那个密文'  
c.NotebookApp.port =8888                   # 随便指定一个端口 

注意第二步生成的配置文件每一行前面都带有注释符#,需要删掉

五、启动jupyter

$ jupyter notebook --ip=myIP(本机ip)

如果以root登录服务器,则需添加参数

$ jupyter notebook --ip=myIP(本机ip)--allow-root

现在打开浏览器输入http://ip:8888就可以看到jupyter的登陆页面了,输入刚才设置的密码即可开始使用jupyter notebook,但是,问题来了,只要关闭命令行,程序就会关闭,所以我们需要设置后台运行。

六、设置后台运行

切换到你想要作为jupyter notebook的根目录的目录下

$ vim start_jupyter.sh

输入

nohup jupyter notebook --ip=myIP

nohup jupyter notebook --ip=myIP  --allow-root

并保存

给予该文件执行的权限并执行

$ chmod +x start_jupyter.sh
$ ./start_jupyter.sh

该进程在后台运行,同时会自动生成nohup.out文件,此时直接关闭命令行进程也会在后台运行(不要按ctrl+c,会结束进程)

七、配置nginx代理

这样配置如果平时要访问需要在ip或域名后加端口号,很不方便,我们用nginx来做一个反向代理,nginx的安装使用在此不再赘述,以下列出配置文件内容:

./etc/nginx/conf.d/default.conf

server {
    listen       80;
    server_name  yourDomain;

    location / {
        proxy_pass http://127.0.0.1:8888;
        proxy_set_header Referer 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;
        # WebSocket support
        proxy_http_version 1.1;
        proxy_set_header Upgrade "websocket";
        proxy_set_header Connection "Upgrade";
        proxy_read_timeout 86400;
	proxy_redirect off;
    }

    location ~* /(api/kernels/[^/]+/(channels|iopub|shell|stdin)|terminals/websocket)/? {
        proxy_pass http://127.0.0.1:8888;
        proxy_set_header Referer 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;
        # WebSocket support
        proxy_http_version 1.1;
        proxy_set_header Upgrade "websocket";
        proxy_set_header Connection "Upgrade";
        proxy_read_timeout 86400;
        proxy_redirect off;
    }   
}

保存后,重新加载配置文件

$ nginx -s reload


至此,你便可以在pc的浏览器上输入域名访问远程服务器上的jupyter服务了!

此外,建议配置成功后将jupyter的ip和nginx中端口转发的目标改为localhost。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值