2015-10-26 109 views
2

由于跨域问题,我无法获得bokeh阴谋以在部署的服务器上工作。我以几种形式提出了这个问题,并没有真正获得任何地方。无法让散景服务器在服务器上运行

无论我运行一个applet或试图嵌入一个图,我总是得到错误

XMLHttpRequest cannot load http://127.0.0.1:5006/bokeh/objinfo/0257493b-cce5-450d-8036-2bc57233b1dc/bd1791f4-4d28-4faa-8c9d-a6fe5a1721c1. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://my_ip_address' is therefore not allowed access. The response had HTTP status code 500. 

在这里,我想从一个Flask视图

@perf.route('/_fetch_heatmap', methods=['POST']) 
@login_required 
def fetch_sd_heatmap(): 

    document = Document() 
    session = Session(root_url='http://127.0.0.1:5006', configdir=current_app.config['BASE_DIRECTORY']) 
    session.use_doc('sd_viz') 
    session.load_document(document) 
    ... 
    plots = VBox(hm_duration, hm_frequency) 

    document.add(plots) 
    push(session, document) 

    script = autoload_server(plots, session) 

return jsonify({'script': script}) 

这个脚本返回到我的javascript内的ajax通话中获取一个剧情脚本。然后将此脚本附加到相应的<div>

这对我的开发机器运行良好。

下面是生产

我nginx的配置
server { 


    listen my_ip default_server; 
    charset  utf-8; 
    client_max_body_size 30M; 

    location ~ ^/(app_config.py|.git) { 
     deny all; 
     return 404; 
    } 

    location/{ 
     index index.html index.htm; 
     root /home/myuser/app_directory; 
     try_files $uri @app; 
    } 

    location /static { 
    alias /home/myuser/app_directory/webapp/static; 
    } 


    location @app { 
     include uwsgi_params; 
     uwsgi_pass unix:/home/myuser/app_directory/uwsgi.sock; 
     uwsgi_connect_timeout 18000; 
... 
} 

有没有人成功地与在生产环境中运行bokeh服务器嵌入式bokeh地块的烧瓶中的应用?

+0

“响应中有HTTP状态码500”表明你没有正确设置你的服务器 –

+0

@BenjaminHodgson你可以扩展吗? –

+0

那么,它会返回一个500内部服务器错误,这通常表示处理请求的服务器中的未捕获异常。它看起来像一个CORS问题,因为500导致Access-Control-Allow-Origin头部丢失。 –

回答

1

嗨只是为了更新这个讨论,作为新的背景虚化服务器的0.11有关于部署更广泛的文件:

http://bokeh.pydata.org/en/0.11.1/docs/user_guide/server.html

包括有关运行的反向代理的背后,使用负载均衡和信息进程管理器和使用Salt等工具进行自动化。从不服务器更健壮,可扩展且易于使用。你可以看到活的背景虚化的服务器实例画廊已“生产”自2016年1月在这里不断部署:

http://demo.bokehplots.com/

作为参照,全自动化的部署是供学习GitHub上:

https://github.com/bokeh/demo.bokehplots.com

此外,嵌入特定会话中的背景虚化服务器应用程序的一个相当复杂的例子演示了“幸福”的例子在这里:

https://github.com/bokeh/bokeh-demos/tree/master/happiness

但最后我要说的是,upcoiming 0.12发布将要设置的背景虚化应用定制神社模板的能力,这意味着像单页应用程序的事情,建立重度左右背景虚化的文档可以直接从散景送达服务器,而不需要嵌入另一个网络服务器(如果需要的话)。