2013-11-12 1 views
1

После this учебник, я учусь, как создать RESTful службы питона с помощью virtualenv и flaskработает веб-приложение на GCE, например повторно

Я создал небольшой hello world веб-приложение и выполнил его: ./app.py. В результате:

* Running on http://127.0.0.1:5000/ 
* Restarting with reloader 

Но когда я открываю браузер и введите http://<external ip>:5000, вместо того, чтобы видеть привет мир я получаю:

не смог подключиться к < внешнего IP >: 5000

Что мне не хватает?

+0

Является 'HTTP: //: 5000' опечатку? Если нет, попробуйте 'http: //127.0.0.1: 5000 /'. Еще один хороший учебник, если вы новичок в Flask: [The Flask Mega-Tutorial] (http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world) – Seberius

+0

@Seberius yep его опечатка, спасибо, мое веб-приложение работает на GCE, поэтому, пытаясь вызвать его из моего macbook, я заменяю 127.0.0.1 внешним ip экземпляра GCE. –

+0

Хорошо, это развертывание, которое имеет смысл на основе названия. К сожалению, у меня нет опыта работы с GCE. Возможно, вы захотите обновить вопрос, включив конфигурацию своего приложения, чтобы помочь другим решить проблему. – Seberius

ответ

3

Что вам не хватает ясно сказано, этим сообщением:

Running on http://127.0.0.1:5000/ 

Сервер прослушивает localhost адреса только, поэтому он не будет видеть соединения от других машин. Если вы хотите, чтобы сервер прослушивает открытый интерфейс вам нужно изменить app.run() строку следующим образом:

app.run(host = '0.0.0.0', debug = True) 
+0

Как только я нахожусь в производстве, что является правильным способом настройки службы? –

+0

В производственной коробке вы не хотите использовать собственный веб-сервер Flask, вам нужно использовать более надежный сервер, такой как nginx или apache. Flask содержит информацию о настройке этих и других веб-серверов для производства. – Miguel

+0

только что понял, что вы являетесь автором учебника, за которым я следую, отличный учебник, спасибо !!! –