配置IPython Notebook提供非本地訪問

裝完IPython Notebook,系統默認只有本機能用,我就在想怎麼能夠提供一個大家一起訪問的環境。

查了一下,官方文檔上具體的方法,可以看官方文檔Running a public notebook server,

裡面介紹了通過配置SSL+password 提供全局訪問,經測試成功。

但由於我想指定某些網段訪問,目前還沒有找到在配置文件(jupyter_notebook_config.py)如何設置,就使用了Nginx+password驗證的方式,也成功了,

在此就具體介紹一下這2種方法。

A.SSL+password驗證

我先介紹一下我的執行環境上如何按官方文檔的操作步驟:

進入3.5.1環境

pyenv activate env351

1.生成配置文件

(env351) [seng@localhost ~]$ jupyter notebook --generate-confignWriting default config to: /home/seng/.jupyter/jupyter_notebook_config.pyn

2.生成密碼

In [1]: from notebook.auth import passwdnIn [2]: passwd()nEnter password:nVerify password:nOut[2]: sha1:.........n

3.生成ssl證書

cd ~/.jupyternopenssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout mykey.key -out mycert.pemn

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

注意官方文檔說需要ssl才能打開外部訪問

c.NotebookApp.base_url = /ipython/ --制定url的path,默認是根目錄nc.NotebookApp.password = usha1:..... --注意和生成的配套nc.NotebookApp.ip = * --目前沒找到制定網段的方法nc.NotebookApp.open_browser = Falsenc.NotebookApp.certfile = /home/biuser/.jupyter/mycert.pemnc.NotebookApp.keyfile = /home/biuser/.jupyter/mykey.keyn

jupyter_notebook_config.py里具體參數說明可以參考Config file and command line options

5.啟動並訪問

jupyter notebook nhttps://host:8888/ipython/tree#notebooksn

B. Nginx+password驗證方式

1.生成配置文件

(env351) [seng@localhost ~]$ jupyter notebook --generate-confignWriting default config to: /home/seng/.jupyter/jupyter_notebook_config.pyn

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

c.NotebookApp.base_url = /ipython/ --制定url的path,默認是根目錄nc.NotebookApp.password = usha1:..... --注意和生成的配套nc.NotebookApp.open_browser = Falsen

3.安裝並配置Nginx

注意 proxy_set的一些參數,這些是一定需要的。

location /ipython {n allow 192.168.1.0/24; #制定自己的網段即可n deny all;n proxy_pass http://127.0.0.1:8888/;n proxy_http_version 1.1;n proxy_set_header Upgrade $http_upgrade;n proxy_set_header Connection "upgrade";n proxy_set_header Origin "";n }n

4.啟動並訪問

jupyter notebook

nginx

host:nginxport/ipython/tree#notebook

-------------

作者:seng

博客專欄:seng的博客

大家也可以加小編微信:tszhihu (備註:Python),拉大家到 Python愛好者社區 微信群,可以跟各位老師互相交流。謝謝。

也可以關注微信公眾號:Python愛好者社區 (ID:python_shequ)


推薦閱讀:

構建PyQt5.8/Python2.7
Kivy中文編程指南:事件和屬性
分享一個簡單的多進程小爬蟲
第一章 | 使用python機器學習
Python數據分析及可視化實例之Flask Web開發

TAG:Python | IPython | JupyterNotebookIPythonNotebook |