外网访问Jupyter
Jupyter是一个非常方便的Python笔记软件,不过一般都是用来本地使用,而我因为自己也有个服务器,偶尔也要用用这个笔记,但是不能每次都在本地装一大堆东西,现在都讲究上云,咱也把咱的笔记上一下云。
想要使用Jupyter,首先要安装,当然Python什么的是必须的,这里就不多讲了,我们来看看需要装哪些套件:
sudo -H pip3 install ipython jupyter opencv-python Pillow numpy scipy matplotlib -i https://pypi.douban.com/simple
这个到底装多少根据自己的需求决定把,反正我一般这些都需要的。
配置Jupyter
因为Jupyter
本身只是支持本地访问,所以我们要配置一下Jupyter,让他可以远程访问,首先我们通过如下的命令产生一个配置文件:
jupyter notebook --generate-config
如果这个命令出现ASCII编码错误,这个是因为编码问题导致的,可以用以下的命令运行
LANG=zn jupyter notebook --generate-config
同样,开启服务的时候也可以加上LANG=zn
然后,我们再生成一个密码,这个要借助ipython来实现:
$ipython
In [1]: from notebook.auth import passwd
In [2]: passwd()
Enter password:
Verify password:
Out[2]: 'sha1:98c421304732:0d98e594255c75c53b989e500f2a150ef0c85088'
这里产生了一个密码,我们再配置文件中要把这个密码写进去,编辑~/.jupyter/jupyter_notebook_config.py
这个文件:
c.NotebookApp.allow_origin = '*'
# 开启远程访问支持
c.NotebookApp.allow_remote_access = True
# 因为本地有代理,这里就只监听本地地址了
c.NotebookApp.ip = '127.0.0.1'
# 默认就不打开浏览器了
c.NotebookApp.open_browser = False
# 诺,这里就是前面的密码
c.NotebookApp.password = 'sha1:98c421304732:0d98e594255c75c53b989e500f2a150ef0c85088'
# 监听的端口,找个没用到的搞一下就好了
c.NotebookApp.port = 8888
Nginx代理转发
还是因为端口的问题,我这只能通过Nginx
代理通过443端口访问我的小本本,所以依然要配置Nginx的转发:
server {
server_name xx.yyy.zzz;
access_log /var/log/nginx/py_debug.access.log;
error_log /var/log/nginx/py_debug.error.log;
client_max_body_size 10000M;
location / {
proxy_pass http://xxx.xxx.xxxx.xxx:8888;
proxy_set_header Host $host;
proxy_http_version 1.1;
proxy_set_header Upgrade "websocket";
proxy_set_header Connection "Upgrade";
proxy_read_timeout 86400;
}
listen xxx.xxx.xxxx.xxx:localport ssl; # managed by Certbot
ssl_certificate /your.pem;
ssl_certificate_key /your.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCMxxxxxxxGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
}
这样本地tmux里面打开jupyter
:
jupyter noteboook
之后就可以通过域名访问啦!
最后更新于 2019-08-17 23:35:38 并被添加「」标签,已有 2315 位童鞋阅读过。
本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可。