web-dev-qa-db-ja.com

AWS Ubuntuでポート5000を有効にする方法

flaskアプリがポート5000のAWS Ubuntuサーバーで実行されています(フラスコはデフォルトでポート5000で実行されます)。しかし、そのポートでサーバーにアクセスしようとすると、接続されません。

AWSコンソールで、任意のIPアドレスCustom TCPのポート50000.0.0.0/0としてセキュリティグループを追加しましたが、それでもアクセスできません。

サーバーを再起動する必要がありますか?それとも何か不足していますか?

提供する追加情報があれば教えてください。

16
Rookie

セキュリティグループ経由でポート5000へのアクセスを許可することに加えて、アプリが外部からのTCP接続を受け入れることができるIPでリッスンしていることを確認する必要もあります。すべてのIPでリッスンするには、あなたのアプリ、使用:

if __name__ == '__main__':
    app.run(Host='0.0.0.0', debug = False)

の代わりに:

if __name__ == '__main__':
    app.run(Host='127.0.0.1', debug = False)

アプリケーションがリッスンしているアドレスを確認するには、次のコマンドを実行します。

netstat -an | grep :5000

これらの変更を行った後、Flaskアプリケーションを再起動します。

ポート5000に保持しているため、開発とテストにこれを使用していると想定していますが、アプリケーションを本番環境にデプロイする準備ができたら、それを背後に置く必要があります実際のウェブサーバー。 nginxWSGI を併用することをお勧めします。 ここにガイドがあります 設定にFlask + nginx + uWSGI、そしてここに Flaskからの公式ドキュメント が対象です。

25
Will

@Willの回答に加えて、使用しているUbuntu AMIにデフォルトで制限付きのiptablesルールが付属している可能性があります。使用する:

Sudo iptables -L

存在する現在のルールを一覧表示します。使用する:

Sudo iptables -A INPUT -p tcp --dport 5000 -j ACCEPT

必要に応じてポートを開きます。

10
mbrig