我已经 nginx 正在运行处理所有SSL内容,并已将/
代理到 Redmine 实例,/ci
代理到< em> Jenkins 实例。
现在,我想通过同样的 nginx 在/ipython
上提供 IPython 实例。
在nginx.conf
我已添加:
http {
...
upstream ipython_server {
server 127.0.0.1:5001;
}
server {
listen 443 ssl default_server;
... # all SSL related stuff and the other proxy configs (Redmine+Jenkins)
location /ipython {
proxy_pass http://ipython_server;
}
}
}
在.ipython/profile_nbserver/ipython_notebook_config.py
我得到了:
c.NotebookApp.base_project_url = '/ipython/'
c.NotebookApp.base_kernel_url = '/ipython/'
c.NotebookApp.port = 5001
c.NotebookApp.trust_xheaders = True
c.NotebookApp.webapp_settings = {'static_url_prefix': '/ipython/static/'}
将我的浏览器指向https://myserver/ipython
,为我提供了我启动的目录中所有笔记本的常用索引页 IPython 。
但是,当我尝试打开其中一个现有笔记本或创建一个新笔记本时,我收到错误:
WebSocket连接失败:无法建立WebSocket连接。您将无法运行代码。检查网络连接或笔记本服务器配置。
我已尝试使用当前稳定版(1.2.1,通过pypi)和开发(Git checkout of master)版本的 IPython 进行相同的设置。
我也尝试根据nginx reverse proxy websockets调整 nginx 配置,但没有用
由于强制执行的策略,我无法在443以外的其他端口上允许与服务器的连接。
是否有人在 nginx 后面运行 IPython ?
答案 0 :(得分:20)
我遇到了同样的问题。我将nginx更新到当前版本(1.6.0)。它似乎现在正在运作。
服务器配置:
location /ipython {
proxy_pass http://ipython_server;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Origin "";
}