У меня есть linux box (Ubuntu 10.10 server edition) в ec2. Я написал веб-сервис с использованием вишневого фреймворка. Допустим, это код, который я написал.
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 в / var / www в моем экземпляре ec2. [Я должен сообщить, что я создал каталог 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/
в моем браузере я не могу установить соединение. Может кто-нибудь сказать мне, где я ошибся? или что мне делать?
EDIT:
Хорошо, вот кое-что интересное, что я нашел. Когда я делаю
python webservice.py
Понятно
ENGINE Serving on 127.0.0.1:8080
Это означает, что веб-сервис будет работать только для локальной машины. Как мне настроить службу 0.0.0.0 (то есть обслуживать любой IP-адрес?)
Надеюсь, этой детали достаточно для понимания проблемы, с которой я столкнулся. Помогите, пожалуйста:)
РЕДАКТИРОВАТЬ 2:
Ну что ж, нашел решение :-) Нужно добавить это до вызова cherrypy.quickstart ()
cherrypy.config.update({'server.socket_host': '0.0.0.0',
'server.socket_port': 80,
})