【发布时间】:2011-07-27 17:43:48
【问题描述】:
我在 ec2 中有一个 linux 机器(Ubuntu 10.10 服务器版)。我已经使用cherrypy 框架编写了一个Web 服务。假设这是我写的代码。
import sys
sys.path.insert(0,'cherrypy.zip')
import cherrypy
from cherrypy import expose
class Service:
@expose
def index(self):
return 'Hello World'
cherrypy.quickstart(Service())
我已将此文件(即 cherrypy.zip 文件)复制到我的 ec2 实例中的 /var/www。 [我应该通知我手动创建了 www 目录,因为它不存在]。然后我跑了
python webservice.py
收到消息
[01/Apr/2011:13:50:04] ENGINE Bus STARTED
但是,当我尝试运行时
(I have masked my public ip)
ec2-1**-2**-1**-**.ap-southeast-1.compute.amazonaws.com/
在我的浏览器中,连接失败。谁能告诉我哪里出错了?或者我应该怎么做?
编辑: 好的,这是我发现的一些有趣的东西。当我这样做时
python webservice.py
我明白了
ENGINE Serving on 127.0.0.1:8080
这意味着,webservice 将只为本地机器运行。如何将服务设置为 0.0.0.0(即提供任何 IP 地址?)
希望这个细节足以理解我面临的问题。请帮忙:)
编辑 2: 哦,好吧,找到了解决方案 :-) 必须在cherrypy.quickstart() 调用之前添加这个
cherrypy.config.update({'server.socket_host': '0.0.0.0',
'server.socket_port': 80,
})
【问题讨论】:
标签: python web-services amazon-ec2 cherrypy