我正在亚马逊ec2 linux instace上运行一个python flask应用程序。
我的python app看起来像:
application.py
#!flask/bin/python
from flask import Flask
application = Flask(__name__)
@application.route('/', methods=['GET', 'POST'])
def index():
return '{"Output":"Hello World"}'
if __name__ == '__main__':
application.run(host='0.0.0.0', port=80, debug=False)
我的主管配置如下:
supervisor.conf
[program:flaskapplication]
command = /home/ec2-user/myapp/venv/bin/python /home/ec2-user/myapp/application.py
stdout_logfile = /var/log/watcher-stdout.log
stdout_logfile_maxbytes = 10MB
stdout_logfile_backups = 5
stderr_logfile = /var/log/watcher-stderr.log
stderr_logfile_maxbytes = 10MB
stderr_logfile_backups = 5
当我执行以下命令时:
supervisorctl -c supervisor.conf
我收到以下回复:
00:00:00 /home/ec2-user/myapp/venv/bin/python2.7 /home/ec2-user/myapp/venv/bin/supervisord -c supervisor.conf
但是当我点击亚马逊实例链接时,没有显示任何内容。我得到一个服务器没有响应页面。我究竟做错了什么?
答案 0 :(得分:0)
我认为你可能需要一个终点:
>>> @application.route('/say_hi', methods=['POST'])
答案 1 :(得分:0)
我意识到默认情况下端口80未配置为EC2安全组中的传入端口。一旦我将端口80添加为已验证的传入组,我就能够运行该应用程序。