Jupyter notebook 服务器端部署

背景

Jupyter notebook是由ipython notebook演变而来,jupyter notebook在数据分析时使用非常的方便,花了一晚上时间,详细看了下Jupyter notebook在服务器上的部署,下面详细介绍每一步。我是在centos7.1上部署的,不同的Linux发行版可能会有差异,详情请参考官方的安装指南。


更新Python 2.7.5 到Python 2.7.11

centos7.1 Python版本还是Python 2.7.5,版本太低,这里推荐安装Anaconda

下载Anaconda3-4.0.0-Linux-x86_64.sh

从官网现在Anaconda Linux版本,下载到本地

安装Anaconda

bash Anaconda3-4.0.0-Linux-x86_64.sh

安装过程需要选择安装路径,可以输入yes选择默认位置root/anaconda2/

添加环境变量

/etc/profile里添加:

export PATH=/root/anaconda2/bin:$PATH

测试是否安装成功

[root@biostacs ~]# python -V
Python 2.7.11 :: Anaconda custom (64-bit)

设置openssl

使用openssl生成验证文件

openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout mycert.pem -out mycert.pem

设置过程中要输入国家,地区,机构,邮箱等信息,记住mycert.pem位置


设置密码

打开ipython , 设置密码

In [1]: from IPython.lib import passwd
In [2]: passwd()
Enter password: 
Verify password: 
Out[2]: 'sha1:7467b7351f12:79fc65998**************3003b87f3'

设置过程中要设置用于远程登录的密码,要记住sha1值,后面设置要用。

生成配置文件

终端输入:

jupyter notebook --generate-config

以上将会在 ~/.jupyter/ 下创建默认config 文件: jupyter_notebook_config.py

修改配置文件

在 ~/.jupyter/ 下 jupyter_notebook_config.py里添加如下内容

# Configuration file for jupyter-notebook.
c = get_config()

# Kernel config
c.IPKernelApp.pylab = 'inline'

# Notebook config
c.NotebookApp.certfile = u'/mycert.pem'#你自己的mycert.pem位置
c.NotebookApp.ip = '*'
c.NotebookApp.open_browser = False
c.NotebookApp.password = u'sha1:209f151dcd7f:a730a81fd00********3ec0a6aa31'#设置密码的时候生成的sha1
# It is a good idea to put it on a known, fixed port
c.NotebookApp.port = 8888# 设置未被使用的端口

配置.htaccess文件

为了让apache2能自然的访问到8888端口,我们配置下.htaccess文件。打开网站根目录下的.htaccess文件,添加下面的语句:

RewriteCond %{HTTP_HOST} ^ipython\.mythsman.com$ [NC]
RewriteCond %{REQUEST_URI} ^/(.*)$ [NC]
RewriteRule ^(.*)$ http://ipython.mythsman.com:8888/%1 [R=301,L]

没有.htaccess文件就自己新建一个,这就是个文本文件。

开放端口

修改iptables

修改/etc/sysconfig/iptables文件,增加如下一行:  

 -A INPUT -p tcp -m state --state NEW -m tcp --dport 8888 -j ACCEPT

重启 iptables

service iptables restart

远程登录Jupyter notebook

本地浏览器输入:

https:\\服务器ip:8888

Jupyter notebook 服务器端部署_第1张图片


输入前面设置的密码


Jupyter notebook 服务器端部署_第2张图片

参考资料

  • leafilab博客
  • mythsman博客
  • simonhaninmelbourne博客
  • AloneSword博客

你可能感兴趣的:(开发环境配置)