搭建jupyter服务
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
- 启动后会自动打开浏览器,进入首页:
在这里就可以尽情体验jupyter的所有功能了,详情参考 运行jupyter 。
书归正传
上面只是对jupyter的一个简单体验,但是为了方便在何时何地都能使用jupyter,在自己Mac上部署就不能完全满足咱们的需求了。接下来讲述如何在云主机(centos系统)上安装jupyter并通过nginx做代理提供服务。
先展示一下部署成果:
这是我自己的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!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
HeyUI组件库按需加载功能上线,盘点HeyUI组件库有哪些独特功能?
HeyUI组件库 如果你还不了解heyui组件库,欢迎来我们的官网或者github参观。 官网 github 当然,如果能给我们一颗✨✨✨,那是最赞的了! 按需加载 当heyui组件库的组件越来越多的时候,按需加载的功能终于上线了。 话不多说,先把按需加载的使用方式放出来。 在线示例 按需加载在线示例 以此图为例,按需加载后,js与css的大小将大幅度减小。 示例代码 import Vue from 'vue'; import App from './app.vue'; import { install, Prototypes, Button, DropdownMenu } from 'heyui'; require('../css/module.less'); Vue.use(install, { components: { Button, DropdownMenu }, prototypes: Prototypes }); const app = new Vue({ el: '#app', render: h => h(App) }); exp...
- 下一篇
基于 Jenkins + JaCoCo 实现功能测试代码覆盖率统计
本文首发于:Jenkins 中文社区 使用 JaCoCo 统计功能测试代码覆盖率? 对于 JaCoCo,有所了解但又不是很熟悉。 "有所了解"指的是在 CI 实践中已经使用 JaCoCo 对单元测试代码覆盖率统计: 当代码 push 到代码仓库后,用 JaCoCo 进行单元测试代码覆盖率统计,并将相应数据推送到 SonarQube。 "不是很熟"指的是应用场景也仅限于此,并未进行过多研究与实践。 前不久,有测试同事提出,想要在实际测试时,用 JaCoCo 统计功能测试代码覆盖率。 其主要目的是在经过功能测试后,通过查看代码覆盖率统计的相关指标,增强对软件质量的信心。 经查阅资料,证明这是可行的。 由于对 JaCoCo 不甚了解,于是查阅官网资料对 JaCoCo 进一步了解。 进一步了解 JaCoCo JaCoCo,即 Java Code Coverage,是一款开源的 Java 代码覆盖率统计工具。 它由 EclEmma 团队根据多年来使用和集成现有库的经验教训而创建。 JaCoCo 愿景 JaCoCo 应该为基于 Java VM 的环境中的代码覆盖率分析提供标准技术。 重点是提供一个...
相关文章
文章评论
共有0条评论来说两句吧...