【发布时间】:2014-07-16 10:09:36
【问题描述】:
我想在 Apache(反向)代理后面运行 IPython 笔记本网络服务器,以便代替 URL
https://my.server:XXXX
(其中 XXXX 是某个端口号)我可以使用
https://my.server/py0
我知道 IPython 使用 websockets,我怀疑这是我的设置中缺少的部分,但我根本找不到关于如何配置它的适当详细描述。不幸的是,IPython webserver setup docs 除了这个之外对代理没有什么好说的:
在代理之后,尤其是当您的系统或浏览器设置为 自动检测代理,笔记本 Web 应用程序可能无法 连接到服务器的 websockets[...]
所以我决定自己尝试一下,并将以下内容放入/etc/apache2/sites-enabled/default-ssl.conf:
SSLProxyEngine On
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
ProxyPass /py0/ https://localhost:10000/
ProxyPassReverse /py0/ https://localhost:10000/
通过 URL https://my.server:10000“直接”访问 IPython 就像宣传的那样完美。
URL https://my.server/py0(没有尾部斜杠)返回“404 Not found”。
与尾部斜杠 https://my.server/py0/ 相同,它会“工作”,因为它转发到 https://my.server/login?next=%2F,然后它本身就是“未找到”——显然是因为 /py0/ 部分丢失了。也许我应该告诉 IPython,但是 如何 ??
也许相关的版本号:Ubuntu 14.04 LTS、Apache 2.4.7。
也许相关的 SO 问题:IPython behind nginx。但是,由于我的设置中的所有其他内容都由 Apache 处理,我对此非常满意,因此我不想另外运行 Nginx。
有没有成功在 Apache 后面配置 IPython 笔记本网络服务器的好人?如果是,那么请站出来分享您的知识 :-) 非常感谢!
【问题讨论】:
-
我要感谢所有提供答案的人。 JupyterHub (github.com/jupyter/jupyterhub) 现在提供了更优雅的解决方案。与 RStudio (rstudio.com) 类似,您可以运行多个用户可以登录并并行工作的网络服务器。如果有兴趣,我可以提供我的 Ubuntu 14.04 的 JupyterHub 安装说明。
标签: apache proxy ipython reverse-proxy