我的交互式滑块示例sliders.py在我的服务器上本地运行,没有任何问题。但是,当我尝试使用Apache 2.4.7在bokeh.example.blah
和http://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
我真的很感激建议!