文档章节

搭建jupyter服务

阿dai学长
 阿dai学长
发布于 05/22 17:48
字数 890
阅读 466
收藏 7

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

Tips:该文章面向Mac和centos用户,如果是Windows用户,请先安装虚拟机。

概述

Jupyter Notebook(此前被称为 IPython notebook)是一个交互式笔记本,支持运行 40 多种编程语言。

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

小试牛刀

如果之前你还不了解jupyter,我建议先在本地来一个全方位的体验! (For Mac)

  • 首先,保证你Mac应该已经安装了python(推荐python3,因为在不久的将来python2将被抛弃!)以及pip命令;
  • 然后,安装jupyter:pip install jupyter (不同环境安装方法参考 安装jupyter ) ;
  • 完成上面的操作就已经安装好了!
  • 最后,启动jupyter:jupyter notebook
  • 启动后会自动打开浏览器,进入首页: 20190522155851180157623.png

在这里就可以尽情体验jupyter的所有功能了,详情参考 运行jupyter

书归正传

上面只是对jupyter的一个简单体验,但是为了方便在何时何地都能使用jupyter,在自己Mac上部署就不能完全满足咱们的需求了。接下来讲述如何在云主机(centos系统)上安装jupyter并通过nginx做代理提供服务。

先展示一下部署成果:

20190522155851242059234.png

这是我自己的jupyter登录主页!其中,配置了用户认证、HTTPS。

开始部署

建议使用普通用户进行部署!

  • 安装python3及pip

    yum install -y python36 python36-pip
    
  • 安装jupyter

    pip install jupyter
    
  • 生成jupyter配置文件

    jupyter notebook --generate-config
    

    会创建目录 ~/.jupyter 并且该目录下会有一个配置文件 jupyter_notebook_config.py

  • 修改配置

    c.JupyterApp.config_file = '~/.jupyter/jupyter_notebook_config.py'
    c.NotebookApp.allow_remote_access = True  # 允许远程访问
    c.NotebookApp.base_url = '/jupyter'  # 设置jupyter的资源主页路径,即[jupyter主页] 
    c.NotebookApp.enable_mathjax = True  # 启用mathjax
    c.NotebookApp.ip = '127.0.0.1'  # 设置了访问该jupyter应用的来源机器只能是本机
    c.NotebookApp.notebook_dir = '/home/nginx/workspace/js_python' # jupyter工作目录,所有在jupyter创建的文件都会保存到这里
    c.NotebookApp.open_browser = False  # 禁止启动时自动开启浏览器
    c.NotebookApp.password = 'sha1:a937e51de9a1:a567707768cd50d0ac1d40a4fb739510ddb3d8cb'  # 用户认证密码
    c.NotebookApp.port = 8888  # 监听端口
    
  • 上面设置了c.NotebookApp.password,通过以下方式获取加密后的密码:

    In [1]: from notebook.auth import passwd
    In [2]: passwd()
    Enter password: 
    Verify password: 
    Out[2]: 'sha1:a937e51de9a1:a567707768cd50d0ac1d40a4fb739510ddb3d8cb'
    
  • 配置完成后,启动:jupyter notebook

  • 为了方便管理,讲服务加入systemctl管理:

    # /usr/lib/systemd/system/jupyter.service
    [Unit]
    Description=Jupyter Management
    After=network.target
    
    [Service]
    User=nginx
    Group=nginx
    WorkDirectory=/home/nginx/workspace/js_python
    ExecStart=/usr/local/bin/jupyter notebook
    
    Restart=on-failure
    RestartSec=10
    
    [Install]
    WantedBy=multi-user.target
    
  • 启动:

    $ systemctl daemon-reload
    $ systemctl start jupyter
    $ systemctl enable jupyter
    

配置nginx代理

nginx的安装过程在此不做赘述,参考 编译安装nginx

nginx配置如下:

  • ssl.conf配置:

    ssl_session_timeout  10m;
    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
    
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers   on;
    ssl_buffer_size 1400;
    ssl_session_tickets on;
    
    ssl_session_cache    shared:SSL:10m;
    
    ssl                  on;
    ssl_certificate      /usr/local/nginx/conf/www.xxxx.cn.crt;
    ssl_certificate_key  /usr/local/nginx/conf/www.xxxx.cn.key;
    client_max_body_size 10m;
    charset utf-8;
    
  • site.conf

    server {
        listen 80;
        server_name www.xxxx.cn;
    
        rewrite ^/(.*)$  https://www.xxxx.cn/$1  permanent;
    }
    
    server {
        listen 443;
        server_name www.xxxx.cn;
    
        include /usr/local/nginx/conf/servers/common/ssl/www_ssl_config.conf;
    
        location /jupyter {
            proxy_pass http://jupyter;
            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;
            # websocket support
            proxy_set_header        Upgrade $http_upgrade;
            proxy_set_header        Connection "Upgrade";
            proxy_read_timeout      86400;
            proxy_redirect          off;
    				# 白名单
            allow 121.xx.xx.xx;
            deny all;
        }
    
    }
    
    upstream jupyter {
        server 127.0.0.1:8888;
    }
    

配置完成后启动nginx,在浏览器访问www.xxxx.cn/jupyter

Completed!

© 著作权归作者所有

阿dai学长
粉丝 76
博文 263
码字总数 337363
作品 0
朝阳
运维
私信 提问
加载中

评论(2)

阿dai学长
阿dai学长 博主

引用来自“一条开发狗”的评论

2019年最新总结,从程序员到CTO,从专业走向卓越,大牛分享文档pdf与PPT整理
https://github.com/0voice/from_coder_to_expert
thx
一条开发狗
一条开发狗
2019年最新总结,从程序员到CTO,从专业走向卓越,大牛分享文档pdf与PPT整理
https://github.com/0voice/from_coder_to_expert
在阿里云Kubernetes容器服务上打造TensorFlow实验室

简介 TensorFLow是深度学习和机器学习最流行的开源框架,它最初是由Google研究团队开发的并致力于解决深度神经网络的机器学习研究,从2015年开源到现在得到了广泛的应用。特别是Tensorboard...

必嘫
2018/04/20
0
0
Heroku 快速搭建 免费高性能 Jupyter Notebook

Heroku 是一个支持多语言的PaaS。简单来说这是一个可以免费快速将自己的应用部署在上面的云平台。Heroku提供Heroku Buttons 来一键部署应用。我们可以使用 heroku-jupyter的脚本自动配置部署...

AvatarBB
2018/05/17
0
0
【数据极客】任务总结_Week1

本文目录 0. 说明 前面一直在忙着导师的任务, 从本周开始和大家一块在这个社区里学习, 一块进步, 请各位大佬们多多指教。 本文将对第一周的作业做一个完成, 此外,将记录如何在服务器环境...

xidiancoder
2017/11/22
0
0
阿里云学生服务器搭建TensorFlow&Tensorboard使用&jupyter notebook配置

TensorFlow 本文内容是如何在阿里云学生服务器下搭建TensorFlow OS Ubuntu 16.04 64位 python 3.5 1.更新软件源 2.安装Python 3.5 输入python命令查看当前默认python版本 Python 3.5 3.安装T...

SpiffyEight77
2017/11/17
0
0
《数据分析基础》课程环境的搭建

1、安装Anaconda Anaconda是基于Python的科学计算和数据分析的集成环境包,我们安装的是Anaconda 3.6的64位版本,集成了Python 3.6以及在科学计算和数据分析中常用的Python模块,包括numpy、...

jplee
2017/07/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

交换机switch 的shutdown 与 no shutdown

shutdown是关闭接口(端口),接口状态会变为DOWN,no shutdown是激活接口(端口),状态变为UP,一般在给vlan或者端口配置管理ip或者端口ip后使用。 有时候我们配置某个端口前会需要把端口关闭到...

刘日辉
32分钟前
5
0
AOP底层源码分析

思维导图 AOP AOP: 面向切面编程[底层就是动态代理] 指程序在运行期间动态的将某段代码切入到指定方法位置进行运行的编程方式。 AOP通知方式 前置通知: logStart(),在目标方法(div)运行之前运...

volc1612
45分钟前
5
0
OSChina 周六乱弹 —— 别听他们的,你不胖你只是毛茸茸的

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @且无需多言 :分享Rise Against的单曲《Audience Of One (Ghost Note Symphonies)》: 硬核朋克不插电版本,隐藏在喧嚣下的柔情! 《Audienc...

小小编辑
今天
32
2
apache httpClient实现代理发送Post请求

CredentialsProvider credsProvider = new BasicCredentialsProvider(); credsProvider.setCredentials( new AuthScope("host", port), new UsernamePasswordCredentials(username, password......

huangkejie
今天
5
0
SpringCloud

单体应用存在的问题 ● 随着业务的发展,开发变得越来越复杂。 ● 修改、新增某个功能,需要对整个系统进行测试,重新部署。 ● 一个模块出现问题,很可能导致整个系统崩溃。 ● 多个开发团队...

Star永恒
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部