【问题标题】:AWS - Running webservice - Cherrypy + PythonAWS - 运行网络服务 - Cherrypy + Python
【发布时间】: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


    【解决方案1】:

    cherrypy.quickstart 函数接受一个配置参数,该参数可以是字典、打开的配置文件或配置文件的路径。我喜欢使用配置文件的路径,因为这样可以最大限度地减少您可能希望通过启动脚本控制的设置的硬编码。

    此外,由于您控制服务器,您可以配置反向代理来将请求路由到 CherryPy 应用程序。这为您提供了相当多的灵活性。例如,如果您愿意,可以并行运行 CherryPy 应用程序的多个实例,每个实例都配置为侦听不同的端口。

    这是 nginx 的示例配置文件,指示它将请求转发到您的 CherryPy 应用程序的单个实例:

    server
    {
      server_name your.hostname.com;
    
      location / {
        proxy_pass http://127.0.0.1:8080/;
      }
    }
    

    下面是一个示例配置文件,它指示 nginx 在您的应用程序的两个实例之间进行负载平衡,这两个实例正在侦听端口 33334 和 33335 的环回地址:

    upstream myapps  {
      server 127.0.0.1:33334;
      server 127.0.0.1:33335;
    }
    
    server {
      server_name your.hostname.com;
    
      location / {
        proxy_pass  http://myapps;
      }
    }
    

    【讨论】:

    • 啊,这是新东西。谢谢你的提示。 :)
    猜你喜欢
    • 1970-01-01
    • 2010-09-27
    • 2016-06-26
    • 1970-01-01
    • 2014-03-25
    • 2012-02-27
    • 2011-12-24
    • 2015-06-11
    • 2023-03-07
    相关资源
    最近更新 更多