flaskアプリがポート5000のAWS Ubuntuサーバーで実行されています(フラスコはデフォルトでポート5000で実行されます)。しかし、そのポートでサーバーにアクセスしようとすると、接続されません。
AWSコンソールで、任意のIPアドレスCustom TCP
のポート5000
に0.0.0.0/0
としてセキュリティグループを追加しましたが、それでもアクセスできません。
サーバーを再起動する必要がありますか?それとも何か不足していますか?
提供する追加情報があれば教えてください。
セキュリティグループ経由でポート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
に保持しているため、開発とテストにこれを使用していると想定していますが、アプリケーションを本番環境にデプロイする準備ができたら、それを背後に置く必要があります実際のウェブサーバー。 nginx と WSGI を併用することをお勧めします。 ここにガイドがあります 設定にFlask + nginx + uWSGI、そしてここに Flaskからの公式ドキュメント が対象です。
@Willの回答に加えて、使用しているUbuntu AMIにデフォルトで制限付きのiptablesルールが付属している可能性があります。使用する:
Sudo iptables -L
存在する現在のルールを一覧表示します。使用する:
Sudo iptables -A INPUT -p tcp --dport 5000 -j ACCEPT
必要に応じてポートを開きます。