Доступ к веб-приложению Python из Интернета

Я запускаю экземпляр Eve на своем веб-сервере Linux, чтобы иметь доступ к базе данных с помощью HTTP. Когда я запускаю скрипт, отображается следующее:

* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

lsof -i :5000 дает

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME python 11824 root 3u IPv4 10213572 0t0 TCP localhost:5000 (LISTEN)

Попытка получить доступ к http://goodenough.io:5000 не работает. У меня это работает на локальном хосте в моей Windows, но оно просто не будет работать через Интернет.

http://www.yougetsignal.com/tools/open-ports/ показывает, что порт закрыт, несмотря на то, что приложение прослушивает, а Digital Ocean утверждает, что все порты открыты по умолчанию.

Но моя новая теория заключается в том, что, возможно, есть нечто большее, чем распознавание внешних запросов?

Любые идеи или предложения будут потрясающими. Спасибо.


person Community    schedule 09.04.2016    source источник
comment
Он говорит, что работает на localhost, внутреннем петлевом интерфейсе сервера, т.е. недоступен по сети. Обновите конфигурацию Eve, чтобы прослушивать внешние IP-интерфейсы.   -  person isedev    schedule 09.04.2016
comment
Это круто! Как мне это сделать?? @isedev   -  person    schedule 09.04.2016


Ответы (1)


В вашем приложении должен быть такой код:

app = Eve()
app.run()

Это будет прослушивать петлевой интерфейс по умолчанию. Чтобы прослушать определенный IP-адрес (видимый извне IP-адрес в вашем случае), используйте:

app.run(host="X.X.X.X")

где X.X.X.X — соответствующий IP-адрес.

person isedev    schedule 09.04.2016
comment
Это был 100% ответ. Теперь работает замечательно! У меня это работало только на моей локальной машине, и теперь я знаю, почему... - person ; 09.04.2016