昨天发了Jupyter的使用,补一篇Jupyter服务器的搭建~

一、搭建Jupyter

1.安装

使用virtualenv建虚拟环境。在虚拟环境中安装jupyter、matplotlib等等需要的库。这里不赘述了。

2.配置

为Jupyter 相关文件准备一个目录

mkdir /data/jupyter
cd /data/jupyter

建立一个目录作为 Jupyter 运行的根目录

mkdir /data/jupyter/root

我们以需要密码验证的模式启动 Jupyter,所以要预先生成所需的密码对应的密文。
使用下面的命令创建一个密文的密码

python2

python -c "import IPython;print IPython.lib.passwd()"

python3

python -c "import IPython;print(IPython.lib.passwd())"

执行后需要输入并确认密码,然后程序会返回一个 'sha1:...' 的密文,留好了,我们接下来将会用到它。

查看用户目录 ~/.jupyter 路径下是否存jupyter_notebook_config.py 文件。若不存在,产生此文件。

jupyter notebook --generate-config

编辑此文件,在最后写入

c.NotebookApp.ip = '*'  # 允许访问此服务器的 IP,星号表示任意 IP
c.NotebookApp.password = u'sha1:xxx:xxx' # 之前生成的密码 hash 字串
c.NotebookApp.open_browser = False # 运行时不打开本机浏览器
c.NotebookApp.port = 8888 # 使用的端口
c.NotebookApp.enable_mathjax = True # 启用 MathJax

3.运行

这时采用 IP:端口号 或者 域名:端口号的方式就可以访问正常使用了。

域名访问默认80端口,接下来我们使用最常用的Nginx做代理,实现直接使用域名进行访问,隐藏端口信息。先对Jupyter进行以下修改

将配置文件ip改为只有本机才能访问

c.NotebookApp.ip = '0.0.0.0' # 127.0.0.1 也可以的

后台运行起来

nohup jupyter notebook > /dev/null 2>&1 &

二、Nginx代理

1.安装与设置

$ apt-get install nginx

2.查看版本

$ nginx -v

3.启动停止

安装完成后,使用 nginx 命令就可以直接启动 Nginx

$ nginx

也可以使用服务器

$ service nginx start
$ service nginx stop
$ service nginx restart

访问 http://YOUR_IP 或者 域名 就可以看到Nginx的测试页面。

4.配置

配置文件在nginx目录下,nginx.conf文件中可以看到代理的部分在在这里 /etc/nginx/sites-enabled/defalut

$ sudo vim /etc/nginx/sites-enabled/defalut

修改其中的 location / 部分。

server {
server_name DOMAIN IP_ADDRESS; # 服务器域名和 IP 地址
listen 80;
...
...
location / {
proxy_pass http://127.0.0.1:YOUR_PORT
}
}

按照上面的方法配置 Jupyter Notebook,如果仅仅对端口号进行代理转发,会出现 terminal 可以正常创建而 notebook 无法正常创建或者使用的情况。因为 Jupyter 会对 http 请求进行判断,所以反向代理时需要设置正确的信息。正确配置 nginx 反向代理的方式如下:

server {
server_name DOMAIN IP_ADDRESS; # 服务器域名和 IP 地址
listen 80;
...
...
location / {
proxy_pass http://127.0.0.1:YOUR_PORT/;
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;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_redirect off;
}
}

重启Nginx服务让设置生效。

$ sudo nginx -s reload

一切正常,晚上吃鸡!不不不,开始干活!

5.可选

目前的URL为 http://dyan.club/tree?,可以在 jupyter_notebook_config.py 中增加 base_url 作为url的路径,来表示服务器上的Jupyter目录的地址。更新后的地址为 http://dyan.club/ipython/tree?

c.NotebookApp.base_url = '/ipython/'
--制定url的path,默认是根目录

目前没有启用ssl,安全性不够,也可以增加ssl协议增强安全性。


参考文献
[1] https://bitmingw.com/2017/07/09/run-jupyter-notebook-server/
[2] https://jupyter.readthedocs.io/en/latest/install.html
[3] http://blog.takwolf.com/2016/10/19/setup-nginx-on-ubuntu/index.html

拓展阅读
[1] http://nbviewer.jupyter.org/

搭建Jupyter Notebook服务器的更多相关文章

  1. Python - 搭建Jupyter notebook环境

    1- Jupyter简介 HomePage:https://jupyter.org/ 安装指南:https://jupyter.org/install.html 官方文档:https://jupyte ...

  2. 使用亚马逊云服务器EC2做深度学习(二)配置Jupyter Notebook服务器

    这是<使用亚马逊云服务器EC2做深度学习>系列的第二篇文章. (一)申请竞价实例  (二)配置Jupyter Notebook服务器  (三)配置TensorFlow  (四)配置好的系统 ...

  3. 搭建Python3的jupyter notebook服务器

    摘要:搭建Python3 jupyter notebook. 激活Python3后,进入Python交互环境 1. 登陆远程服务器 2. 生成配置文件 1. $jupyter notebook --g ...

  4. Python3 jupyter notebook 服务器搭建

    1. jupyter notebook 安装 创建 jupyter 目录 mkdir jupyter cd jupyter/ 创建独立的 Python3 运行环境,并激活进入该环境 virtualen ...

  5. 在服务器搭建Jupyter notebook

    安装 Jupyter Notebook (这里虽然是对centos和Python2的,但是在Ubuntu16.04,Python3同样可以照着弄) Jupyter Notebook 简介 Jupyte ...

  6. 使用docker搭建jupyter notebook / jupyterlab

    说明 由于官方镜像实在是不怎么好用,所以我自己做了一个优化过的jupyter notebook的镜像 notebook_hub,使用我这个镜像搭建容器非常简单,下面就基于这个notebook_hub来 ...

  7. 【机器学习 Azure Machine Learning】使用Aure虚拟机搭建Jupyter notebook环境,为Machine Learning做准备(Ubuntu 18.04,Linux)

    问题描述 在Azure的VM中已经安装好Jupyter,并且通过jupyter notebook --port 9999 已经启动,但是通过本机浏览器,访问VM的公网IP,则始终是不能访问的错误.(T ...

  8. 使用centos linux vps搭建jupyter notebook踩坑日记

    今天我尝试用vps搭建在线jupyter notebook网站时遇到了这样一个问题: [W 21:48:07.243 NotebookApp] SSL Error on 9 ('171.115.101 ...

  9. vps上搭建jupyter notebook远程服务

    安装anaconda 使用如下命令下载: wget https://repo.continuum.io/archive/Anaconda3-5.0.0.1-Linux-x86_64.sh 如果非roo ...

随机推荐

  1. scp 上传和下载文件

    mac和linux自带scp命令,windows的话请考虑gitbash或者专业linux工具 (默认端口为22,所以-p可不写) 上传文件 scp -p /home/lnmp.gz root@ip: ...

  2. FZEasyFile的使用

    FZEasyFile的使用 https://github.com/jiecao-fm/FZEasyFile 操作沙盒文件很恶心,但用上FZEasyFile就变得简单了. 以前你需要这么做才行: NSF ...

  3. linux和aix内核参数检查

    安装oracle软件时需要设置操作系统级别的用户限制,后期检查可以使用如下命令,方便问题的排查工作 linux: tail -15 /etc/security/limits.conf tail -30 ...

  4. jemter多种方式查看结果树及正则的使用

    最近才发现jemter结果是有一种正则表达式匹配的显示方式,以前直接在TEXT下显示和来匹配正则,真是费时间,使用方式如下: 默认使用TEXT方式显示: 显示方式有以下几种: RegExp Teste ...

  5. WebSphere Studio Application Developer 5.0 优化设置

    公司有一个项目需要用到WebSphere Studio Application Developer 5.0 的开发环境,这个环境比较老,而且只能用JDK1.4. 项目开发的时候 总是报错: JVM t ...

  6. Git Brash在Windows下乱码问题

    ,/etc/gitconfig: [gui] encoding = utf- #代码库统一用urf-8,在git gui中可以正常显示中文 [i18n] commitencoding = GB2312 ...

  7. 20145223 杨梦云 《网络对抗》 Web安全基础实践

    20145223 杨梦云 <网络对抗> Web安全基础实践 1.实验后回答问题 (1)SQL注入攻击原理,如何防御 **原理**:SQL注入攻击是通过构建特殊的输入作为参数传入web应用程 ...

  8. Windows 10推送的锁屏壁纸保存方法

    Windows 10推送的锁屏壁纸保存方法 工作中使用的系统为Windows 10,锁屏时显示的壁纸很漂亮,并且每天都会更新,有几张特别喜欢,于是就想这些壁纸到底保存在哪里呢?经过一番摸索,终于搞明白 ...

  9. HTML5视频播放插件 video.js介绍

    video.js是一款很流行的html5视频播放插件.很适合在移动端播放视频(比如微信网页),功能强大,且支持降级到flash,兼容ie8.官网:http://videojs.com/    git& ...

  10. Haroopad 中文不显示

    https://blog.csdn.net/zgf19930504/article/details/51508111 1. 选择文件--> 偏好设置 2. 选择 编辑器--> 编辑--&g ...