如何将dotcloud上服务websockets的龙卷风服务器暴露给www?

时间:2012-09-04 15:36:12

标签: websocket tornado dotcloud

我正在尝试安装IPython html notebook server 在dotCloud上。 IPython服务器使用龙卷风和websockets(以及在tcp套接字上使用zeromq的其他内部通信)。

Hhere是我的 dotcloud.yml

www:          
    type: custom
    buildscript: builder
    ports:
       nbserver: tcp

我正在关注给定herehere的自定义端口配方。如日志所示,我在127.0.0.1:$DOTCLOUD_WWW_NBSERVER_PORT上运行龙卷风服务器:

/var/log/supervisor/www.log

  

[NotebookApp] IPython Notebook运行于:'http://127.0.0.1:35928/'
  [NotebookApp]使用Control-C停止此服务器并关闭所有内核。

但是当我推动时,dotCloud CLI告诉我:

  

警告:服务在启动时崩溃或正在侦听错误的端口。它未能在30秒内对端口“nbserver”(42801)做出响应。请检查申请日志   ...
  部署完成。您的应用程序可通过以下URL获得   找不到网址。没关系,这意味着您的应用程序不包含Web服务。“

my-app.dotcloud.commy-app.dotcloud.com:DOTCLOUD_WWW_NBSERVER_PORT

上没有任何内容

我在这里缺少什么?谢谢你的帮助。

更新

问题解决了。通常的HTTP端口可以正常使用websockets,因此不需要自定义端口配方。这是我的新 dotcloud.yml

www:
 type: custom
 buildscript: builder
 ports:
   web: http

ipython_notebook_config.py中使用以下内容:

 c.NotebookApp.ip = '*'

这样龙卷风webserver就可以监听所有ip地址。

警告:首先设置安全性和身份验证!

有关详细信息,请参阅Running a Public Notebook Server

1 个答案:

答案 0 :(得分:0)

很高兴你得到了它的工作!

将来,对于其他读者,您实际上希望您的应用在$PORT_NBSERVER上收听,然后在DOTCLOUD_WWW_NBSERVER_PORT上与其关联。 $PORT_NBSERVER是本地端口,而后者是通过路由/ NAT层暴露给外部世界的端口。

如果您有任何其他问题,请随时与我们联系http://support.dotcloud.com

来源:我是dotCloud的员工。