Jupyter Notebook在nginx中无法配置为二级页面的解决办法
2019年1月30日 - 由Bo 5 评论 6996 阅读
在网站刚建立的时候,就已经搭建了Jupyter Notebook的运行环境。不过之前只是开放为8888的端口,无法像博客那样有个正常点的名字。毕竟域名都有了,长时间输入端口访问实在是有点强迫症发作了,于是打算像本博客网址一样配置一个正常的url,就像现在的https://www.byincd.com/jupyter。
自己弄的两个博客都是用的nginx,于是决定也把Jupyter配置在nginx里。但是配置时发现只能作为根目录来访问,否则就会报404的错误。哪怕改为location ~ /jupyter这种也不行。如下所示。
location / {
proxy_pass http://127.0.0.1:8888;
proxy_set_header Host $host;
}
location ~ /api/kernels/ {
proxy_pass http://127.0.0.1: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;
}
location ~ /terminals/ {
proxy_pass http://127.0.0.1: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;
}
我需要的是作为二级目录访问的啊,于是查阅了相关资料,找到了解决办法。
先修改jupyter notebook的配置文件jupyter_notebook_config.py。增加下面两行并重启jupyter notebook。
c.NotebookApp.notebook_dir = u'/path/jupyter'
c.NotebookApp.base_url = '/jupyter/'
然后在nginx的site-available的default文件中增加如下内容,重启nginx,即可用https://www.byincd.com/jupyter访问jupyter notebook啦。
location /jupyter/ {
proxy_pass http://127.0.0.1:8888;
proxy_set_header Host $host;
proxy_set_header X-Real-Scheme $scheme;
proxy_set_header X-Real-IP $remote_addr;
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_read_timeout 120s;
proxy_next_upstream error;
}
下一篇:
mac配置android sdk环境
上一篇:
手机app测试策略
共有5条评论
添加评论
asdasd
2020年9月12日 21:02salam
lin
2020年5月12日 17:38楼主这个正解! 成功配置好了
Bo
2019年9月4日 10:44@wadewu 这里的值是你配置的jupyter启动的根目录路径,比如c.NotebookApp.notebook_dir = u'/home/debug/jupyter'
wadewu
2019年9月4日 10:28你好,请问c.NotebookApp.notebook_dir = u'/path/jupyter',这一项应该填什么呢?
wadewu
2019年9月4日 10:28你好,请问c.NotebookApp.notebook_dir = u'/path/jupyter',这一项应该填什么呢?