我使用扭曲的python服务器来托管链接到散景服务器上运行的应用程序的概述页面。扭曲的服务器将传入的请求(类似<globalip>:80
)代理到散景服务器(在端口5006
上)。
我决定使用扭曲的服务器,因为我希望能够使用anaconda python运行整个系统。使用散景0.12.4,此解决方案运行良好。
我希望下面的例子说明了我的服务器设置在散景版0.12.5上出现的问题。目前我怀疑带有websockets和扭曲服务器的东西出错了,但由于我对websockets缺乏经验,所以我不知道从哪里开始。
散景服务器在localhost:5006
上托管来自https://github.com/bokeh/bokeh/blob/master/examples/app/sliders.py的滑块应用。
bokeh serve Sliders --port 5006 --host localhost:5006 --allow-websocket-origin=127.0.0.1:8080
一起投放(我基本上通过反复试验得出--host
和--allow-websocket-origin
的这种组合;这在散景0.12.4下工作。bokeh serve --show Sliders
Twisted服务器在127.0.0.1:8080
上托管一个网站,其中包含指向127.0.0.1:8080/apps/Sliders
的链接。如果用户调用此链接,则服务器将代理localhost:5006\Sliders
上的散景服务器应用程序。
twisted_server.py
from twisted.internet import reactor
from twisted.web import proxy, server
from twisted.web.static import File
resource = File('./www/')
resource.putChild('apps',proxy.ReverseProxyResource('localhost', 5006, ''))
site = server.Site(resource)
reactor.listenTCP(8080, site)
reactor.run()
WWW / index.html中
<!DOCTYPE html>
<html lang="de">
<head>
<title>Sliders</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<p>
<a target="_blank" href="apps/Sliders">Sliders</a>
conda install bokeh=0.12.4
通过上面的配置,一切运行正常。我可以在浏览器中打开127.0.0.1:8080
,点击幻灯片应用程序的链接,该应用程序已打开,可以与之互动。
conda install bokeh=0.12.5
上面的配置允许我打开127.0.0.1:8080
。点击幻灯片应用程序的链接只会产生一个空白页面。散景服务器shell的输出如下所示。
由于在散景0.12.5中已弃用--host
参数,我已在--allow-websocket-origin
尝试了各种参数组合,但这些参数组合也无效。
如果有人可以帮我解密错误信息GET 400 ...
,那将非常感激。
散景服务器输出
C:\Users\Benjamin\Anaconda2\lib\site-packages\bokeh\command\subcommands\serve.py:325: UserWarning: The --host parameter is deprecated because it is no longer needed. It will be removed and trigger an error in a future release. Values set now will be copied to --allow-websocket-origin. Depending on your use case, you may need to set current --host values for 'allow_websocket_origin' instead.
"The --host parameter is deprecated because it is no longer needed. "
2017-04-20 12:18:00,375 Starting Bokeh server version 0.12.5
2017-04-20 12:18:00,454 Starting Bokeh server on port 5006 with applications at paths ['/Sliders']
2017-04-20 12:18:00,454 Starting Bokeh server with process id: 2308
2017-04-20 12:18:25,055 200 GET /Sliders (127.0.0.1) 543.00ms
2017-04-20 12:18:25,915 400 GET /Sliders/ws?bokeh-protocol-version=1.0&bokeh-session-id=FICIeGnPQLGK7363ORLcpTPMVBCiPffpOgGx2qdy5AdM (127.0.0.1) 0.00ms
答案 0 :(得分:0)
这可能与以下内容重复:
bokeh serve running but can't access with browser
在这种情况下,您需要从最近发布的Tornado 4.5降级(或升级到最新的Bokeh&#34; dev&#34;具有不兼容性修复的版本)。
编辑:我sholud还注意到很快就会在默认的repo中有一个碰撞的conda构建,它已经更新了Tornado deps,排除了Tornado 4.5,但我不确定何时知道这将发生(可能在今天晚些时候)