【问题标题】:Error in deploy Gunicorn and Supervisor on AWS EC2在 AWS EC2 上部署 Gunicorn 和 Supervisor 时出错
【发布时间】:2018-11-27 09:14:14
【问题描述】:

我是新手,请耐心等待

我正在尝试使用具有开放端口的 AWS Ubuntu 机器部署烧瓶应用程序 44380

当我使用 sudo python app.py 运行烧瓶应用程序时,它可以工作。

当我尝试使用gunicorn 时出现问题。当我使用命令

gunicorn -b 0.0.0.0:443 app:app

它推动了这个错误

[2018-06-18 13:30:30 +0000] [11135] [INFO] Starting gunicorn 19.8.1
[2018-06-18 13:30:30 +0000] [11135] [ERROR] Retrying in 1 second.
[2018-06-18 13:30:31 +0000] [11135] [ERROR] Retrying in 1 second.
[2018-06-18 13:30:32 +0000] [11135] [ERROR] Retrying in 1 second.
[2018-06-18 13:30:33 +0000] [11135] [ERROR] Retrying in 1 second.
[2018-06-18 13:30:34 +0000] [11135] [ERROR] Retrying in 1 second.
[2018-06-18 13:30:35 +0000] [11135] [ERROR] Can't connect to ('0.0.0.0', 443)

我检查了没有进程使用lsof -i:443

监听端口443

这里是 app.py

from flask import Flask
application = Flask(__name__)

@application.route("/")
def index():
    return "Hello World!"

if __name__ == "__main__":
    application.run(host='0.0.0.0', port='443')

已编辑:gunicorn 错误通过使用sudo -H pip install gunicorn 安装解决了

我正在尝试在生产中部署应用程序,因此我希望它持续运行。我试着supervisor 一直保持下去

这里是supervisor的配置

[program:app_name]
directory=/home/ubuntu/FIFA_Captcha
command=/usr/local/bin/gunicorn -b 0.0.0.0:443 app:app
autostart=true
user=root
autorestart=true
stderr_logfile=/home/ubuntu/app_name.err.log
stdout_logfile=/home/ubuntu/app_name.out.log
environment=PYTHONPATH=/usr/bin/python

输出sudo service supervisor status

Jun 18 22:02:39 ip-172-31-3-59 systemd[1]: Started Supervisor process control system for UNIX.
Jun 18 22:02:39 ip-172-31-3-59 supervisord[19562]: 2018-06-18 22:02:39,828 CRIT Supervisor running as root (no user in config file)
Jun 18 22:02:39 ip-172-31-3-59 supervisord[19562]: 2018-06-18 22:02:39,829 WARN Included extra file "/etc/supervisor/conf.d/app_name.conf" Jun 18 22:02:39 ip-172-31-3-59 supervisord[19562]: 2018-06-18 22:02:39,834 INFO RPC interface 'supervisor' initialized
Jun 18 22:02:39 ip-172-31-3-59 supervisord[19562]: 2018-06-18 22:02:39,834 CRIT Server 'unix_http_server' running without any HTTP authenticatJun 18 22:02:39 ip-172-31-3-59 supervisord[19562]: 2018-06-18 22:02:39,834 INFO supervisord started with pid 19562
Jun 18 22:02:40 ip-172-31-3-59 supervisord[19562]: 2018-06-18 22:02:40,837 INFO spawned: 'app_name' with pid 19569
Jun 18 22:02:40 ip-172-31-3-59 supervisord[19562]: 2018-06-18 22:02:40,952 INFO exited: app_name(exit status 3; not expected)
Jun 18 22:02:41 ip-172-31-3-59 supervisord[19562]: 2018-06-18 22:02:41,955 INFO spawned: 'app_name' with pid 19574
Jun 18 22:02:42 ip-172-31-3-59 supervisord[19562]: 2018-06-18 22:02:42,069 INFO exited: app_name(exit status 3; not expected)

app_name.err.log 的输出。虽然我设置了PYTHONPATH

  File "/usr/local/lib/python2.7/dist-packages/gunicorn/app/wsgiapp.py", line 41, in load_wsgiapp
    return util.import_app(self.app_uri)
  File "/usr/local/lib/python2.7/dist-packages/gunicorn/util.py", line 350, in import_app
    __import__(module)
  File "/home/ubuntu/FIFA_Captcha/app.py", line 2, in <module>
    from flask import Flask, render_template, request
ImportError: No module named flask
[2018-06-18 22:09:34 +0000] [19681] [INFO] Worker exiting (pid: 19681)
[2018-06-18 22:09:34 +0000] [19677] [INFO] Shutting down: Master
[2018-06-18 22:09:34 +0000] [19677] [INFO] Reason: Worker failed to boot.

【问题讨论】:

  • 你能分享你的 gunicorn 配置文件吗?另外,您以什么用户身份运行 gunicorn?您需要成为 root 才能使用端口 443。
  • 我使用默认配置。我正在使用 ubuntu 用户,将 sudo 添加到命令 sudo gunicorn -b 0.0.0.0:443 app:app 时得到相同的错误
  • 我能够在我的系统上重新创建问题,但使用 sudo 解决了它。有些东西已经在使用 443,或者您没有使用该端口的权限。也许尝试另一个(超过 2000 个),看看会发生什么?您始终可以在机器前面放置一个 ELB,以将 SSL 流量发送到该端口。

标签: amazon-web-services flask amazon-ec2 gunicorn supervisord


【解决方案1】:

您需要是 root 才能使用端口 443。

【讨论】:

  • 我设法解决了 gunicorn 错误,但是当我将它添加到 supervisor 时遇到了问题。我编辑了问题
  • 尝试设置user=root
  • 啊。看起来您的 python 包没有在系统范围内安装。这是使用您的设置运行所必需的(或多或少)。如果您创建了需求文件,请运行sudo pip install -r requirements.txt,否则您必须手动安装它们。不要使用虚拟环境。
  • 谢谢。在系统范围内安装 python 库后它可以工作
猜你喜欢
  • 2015-04-21
  • 2020-12-26
  • 2014-03-31
  • 2015-08-01
  • 2015-10-18
  • 1970-01-01
  • 2020-03-21
  • 2017-02-14
  • 2017-01-26
相关资源
最近更新 更多