Мне не удается установить TCP-соединение с портом 8080: соединение отказано - PullRequest
0 голосов
/ 28 июня 2019

10: 07: 34.779: [APP / PROC / WEB.0] * Запуск на http://127.0.0.1:8080/ (нажмите CTRL + C, чтобы выйти) 10: 08: 34.562: [HEALTH.0] Не удалось установить TCP-соединение с портом 8080: соединение отклонено 10: 08: 34.562: [CELL.0] Тайм-аут после 1 мсек: проверка работоспособности никогда не проходила.

Хотя мой код работает нормально на локальной машине

class Health (Resource):#this piecc of code is to perform the health check of the application so that it can run successfully without crashing on cf
      def get(self):
        return "UP"

api.add_resource(Health, '/health')

if __name__ == '__main__': #read about uses of main
    app.run(port = '8080')

1 Ответ

1 голос
/ 30 июня 2019

Вы должны убедиться, что вы слушаете что-то, кроме 127.0.0.1/localhost.Это недоступно извне, поэтому проверки работоспособности и внешний трафик не смогут получить доступ к вашему приложению, если вы слушаете только 127.0.0.1/localhost.

Самый простой способ - прослушать 0.0.0.0, которыйслушает на всех интерфейсах.Технически вы можете прослушивать конкретный IP-адрес, но это больше работы, и в итоге получается то же самое.

В моих приложениях Python Flask, которые я запускаю на Cloud Foundry, я в итоге получаю что-то вроде этого:

if __name__ == "__main__":
    app.run(host="0.0.0.0", port=int(os.environ.get('PORT', 5001)))

Вторая часть технически необязательна, поскольку PORT всегда должен принимать значение 8080, но это может измениться в будущем, поэтому чтение переменной env PORT является хорошей идеей.

Надеюсь, это поможет!

...