配置IPython Notebook提供非本地访问

SSL+password验证

进入3.5.1环境

1
pyenv activate env351

1.生成配置文件

1
jupyter notebook --generate-config

2.生成密码
输入ipython

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

记下这里的sha1值,后面有用
3.生成ssl证书
输入exit退出命令模式

1
2
cd ~/.jupyter
openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout mykey.key -out mycert.pem

生成证书时按要求输入信息即可
4.修改配置文件jupyter_notebook_config.py
注意官方文档说需要ssl才能打开外部访问

1
2
3
4
5
6
c.NotebookApp.base_url = '/ipython/'  --制定url的path,默认是根目录
c.NotebookApp.password = u'sha1:.....' --注意和生成的配套
c.NotebookApp.ip = '*' --目前没找到制定网段的方法
c.NotebookApp.open_browser = False
c.NotebookApp.certfile = '/root/.jupyter/mycert.pem'
c.NotebookApp.keyfile = '/root/.jupyter/mykey.key'

5.启动并访问

1
jupyter notebook

浏览器输入地址:

1
https://host:8888/ipython/tree#notebooks

Nginx+password验证方式

1.生成配置文件

1
jupyter notebook --generate-config

2.修改配置文件jupyter_notebook_config.py,

1
2
3
c.NotebookApp.base_url = '/ipython/'  --制定url的path,默认是根目录
c.NotebookApp.password = u'sha1:.....' --注意和生成的配套
c.NotebookApp.open_browser = False

3.安装并配置Nginx
注意 proxy_set的一些参数,这些是一定需要的。

1
2
3
4
5
6
7
8
9
location /ipython {
allow 192.168.1.0/24; #制定自己的网段即可
deny all;
proxy_pass http://127.0.0.1:8888/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Origin "";
}

4.启动并访问

1
2
jupyter notebook 
nginx

1
http://host:nginxport/ipython/tree#notebooks
文章目录
  1. 1. SSL+password验证
  2. 2. Nginx+password验证方式