散景服务器的Apache反向代理不提供交互式内容

时间:2016-06-12 04:56:01

标签: apache reverse-proxy bokeh

我的交互式滑块示例sliders.py在我的服务器上本地运行,没有任何问题。但是,当我尝试使用Apache 2.4.7在bokeh.example.blahhttp://127.0.0.1:5006/sliders之间设置反向代理时,远程计算机上的页面在没有交互元素的情况下加载,尽管像页面标题这样的HTML元素会负荷。

我使用此命令运行sliders.py bokeh serve sliders.py --host bokeh.example.blah 当我尝试访问bokeh.example.blah时,会弹出龙卷风404警告:

    INFO:bokeh.command.subcommands.serve:Starting Bokeh server on port 5006 with applications at paths ['/sliders']
    DEBUG:bokeh.server.tornado:[pid 7611] 0 clients connected
    DEBUG:bokeh.server.tornado:[pid 7611]   /sliders has 0 sessions with 0 unused
    INFO:tornado.access:200 GET /sliders (127.0.0.1) 43.49ms
    WARNING:tornado.access:404 GET /slidersstatic/css/bokeh.min.css?v=25ce17349a0082e9eeac845e42a822ec (127.0.0.1) 0.84ms
    WARNING:tornado.access:404 GET /slidersstatic/css/bokeh-widgets.min.css?v=3b73ec63df304369ffc9c7e5132463cd (127.0.0.1) 0.78ms
    WARNING:tornado.access:404 GET /slidersstatic/js/bokeh.min.js?v=50ffae624cbe67773b5995270f946406 (127.0.0.1) 0.69ms
    WARNING:tornado.access:404 GET /slidersstatic/js/bokeh-widgets.min.js?v=7cfd458197bc395bb09e9dc3b8ac7975 (127.0.0.1) 0.71ms
    WARNING:tornado.access:404 GET /slidersstatic/js/bokeh-compiler.min.js?v=28af56ac5027aa8d0ab96086ec1da10b (127.0.0.1) 0.74ms

我这是我的000-default.conf

    <VirtualHost *:80>
        ProxyHTMLEnable On

        ProxyPreserveHost On
        ServerName bokeh.example.blah
        ProxyPass / http://127.0.0.1:5006/sliders
        ProxyPassReverse / http://127.0.0.1:5006/sliders

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
    </VirtualHost>

有趣的是,发生这种情况时不会创建apache错误日志。

Google搜索告诉我,通过反向代理使用apache提供动态内容有时会出现问题 - 这导致我添加了“#UND; ProxyHTMLEnable On&#39;到我的.conf文件。如果有人之前已经看过这类问题并且有建议,那将非常感谢!

我还注意到,似乎有一些地方表明有关如何部署散景应用程序的documnetation正在等待处理。例如,空的部署生产部分here或此issue。关于这方面的信息是否已经存在,而我只是在错误的地方寻找?

谢谢!

更新

我现在有一个不同的错误。

之前的错误是由于我没有指定散景保存其静态文件的位置。我这样做是通过修改&#39; 000-default.conf&#39;对此:

    <VirtualHost *:80>    
        ServerName bokeh.example.blah                                                                                     

        ProxyPreserveHost On
        ProxyPass /sliders/ws ws://127.0.0.1:5100/sliders/ws
        ProxyPassReverse /sliders/ws ws://127.0.0.1:5100/sliders/ws

        ProxyPass /sliders http://127.0.0.1:5100/sliders/
        ProxyPassReverse /sliders http://127.0.0.1:5100/sliders/

        <Directory />
            Require all granted
            Options -Indexes
        </Directory>

        Alias /static /usr/local/lib/python2.7/dist-packages/bokeh/server/static
        <Directory /usr/local/lib/python2.7/dist-packages/bokeh/server/static>
            # directives to effect the static directory                         
            Options +Indexes
        </Directory>
    </VirtualHost>

和以前一样,我只能加载HTML页面的标题,而不能加载交互式图。现在,java控制台给了我这个错误:

    WebSocket connection to 'ws://bokeh.example.blah/sliders/ws?bokeh-protocol-version=1.0&bokeh-session-id=pyrxrMepBAnQyAdl4UpACinDdhxcegz0SWtNnonrLngM' failed: Error during WebSocket handshake: Unexpected response code: 500
    bokeh.min.js?v=50ffae6…:62 Bokeh: Failed to connect to Bokeh server Error: Could not open websocket

我真的很感激建议!

0 个答案:

没有答案