在Amazon EC2 linux实例上运行supervisor

时间:2017-01-13 18:10:15

标签: python amazon-ec2 supervisor

我正在亚马逊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

但是当我点击亚马逊实例链接时,没有显示任何内容。我得到一个服务器没有响应页面。我究竟做错了什么?

2 个答案:

答案 0 :(得分:0)

我认为你可能需要一个终点:

>>> @application.route('/say_hi', methods=['POST'])

答案 1 :(得分:0)

我意识到默认情况下端口80未配置为EC2安全组中的传入端口。一旦我将端口80添加为已验证的传入组,我就能够运行该应用程序。