如何在子路径中配置nyx后面的IPython?

Tor*_*örn 17 proxy nginx ipython websocket

我有nginx的运行处理所有的SSL东西,并已进行代理/到一个管理平台实例和/ci一个詹金斯实例.

现在我想通过同样的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;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在我,.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/'}
Run Code Online (Sandbox Code Playgroud)

指向我的浏览器,https://myserver/ipython为我提供了我启动IPython目录中所有笔记本的常用索引页面.
但是,当我尝试打开其中一个现有笔记本或创建一个新笔记本时,我收到错误:

WebSocket连接失败:无法建立WebSocket连接.您将无法运行代码.检查网络连接或笔记本服务器配置.

我已尝试使用当前稳定版(1.2.1,通过pypi)和开发(Git checkout of master)版本的IPython进行相同的设置.
我也尝试根据nginx反向代理websockets调整nginx配置,但没有用. 由于强制策略,我无法允许在443以外的其他端口上连接到服务器.

有没有人在nginx后面运行IPython

iro*_*oln 21

我有同样的问题.我将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 "";
}
Run Code Online (Sandbox Code Playgroud)

请参阅:http://nginx.org/en/docs/http/websocket.html

  • 我不得不添加`proxy_set_header Origin"";`来使这个工作.由于原始检查未通过,Tornado服务器不接受连接. (18认同)