【问题标题】:nginx flask aws 502 Bad Gatewaynginx烧瓶aws 502错误网关
【发布时间】:2016-08-24 16:10:01
【问题描述】:

我的服务器昨天运行良好,但现在返回 502 错误,怎么会发生这种情况?

在我的access.log中显示:

[24/Aug/2016:07:40:29 +0000] "GET /ad/image/414 HTTP/1.1" 502 583 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36"

在我的error.log中显示:

2016/08/24 07:38:50 [error] 14465#0: *12513 connect() failed (111: Connection refused) while connecting to upstream, client: 123.49.616.74, server: app.example.com.au, request: "GET /ad/image/414 HTTP/1.1", upstream: "http://127.0.0.1:8000/ad/image/414", host: "app.example.com.au"

这是我运行 grep 时的结果:

ubuntu    6856  0.0  0.6  56624 12652 ?        S    00:08   0:03 /home/www/carbuzzz_admin/env/bin/python /home/www/carbuzzz_admin/env/bin/gunicorn application:application -b localhost:4215
ubuntu    6865  0.0  1.8 180832 36892 ?        S    00:08   0:00 /home/www/carbuzzz_admin/env/bin/python /home/www/carbuzzz_admin/env/bin/gunicorn application:application -b localhost:4215
ubuntu   14300  0.0  0.0  10464   948 pts/0    S+   08:06   0:00 grep --color=auto -i gunicorn

【问题讨论】:

  • 请分享您在本应用中的 nginx 配置。

标签: python amazon-web-services nginx flask


【解决方案1】:

HTTP 状态码 502 通常表示 Nginx 代理的应用服务器没有运行。由于这是一个 Flask 应用程序,我认为这类似于 Gunicorn 或 uwsgi。检查它是否正在运行。

我通常使用 Supervisor 之类的东西来确保应用程序服务器在出现故障时自动重启。

【讨论】:

    【解决方案2】:

    这通常发生在服务未运行时。

    所以我敢打赌你的烧瓶应用程序或wsgi 没有运行。

    【讨论】:

    • 我怎么知道它是否没有运行?我最初是 Apache 的 django 开发人员
    • 取决于你的 nginx 配置,你使用的是 proxy_pass 还是 uwsgi ?
    【解决方案3】:

    我相信gunicorn 没有在您的系统上运行。检查gunicorn进程的状态,如果没有运行则启动进程

    【讨论】:

    • 我不是创建这个的人,我是 Apache 用户。我怎么知道 gunicorn 是否在运行?
    • DjangoFlask 应用程序通过 gunicornNginxApache 交互。您可以通过ps aux | grep -i gunicorn检查gunicorn进程是否正在运行
    • 又添加了一个答案。我认为您的问题与此有关。
    • 您是否验证了我在另一个答案中提到的内容?
    【解决方案4】:

    查看您的error 它提到了123.49.616.74, server: app.example.com.au,我认为在您的配置中您提到了服务器的IP 地址。将其替换为您的本地 IP,即127.0.0.1

    由于您在浏览器中以 127.0.0.1 的形式发出请求,并且在 Nginx 配置中指定的 host 为:“app.example.com.au”。由于此连接将被服务器拒绝。

    【讨论】:

    • 那个122的ip地址其实是我的地址。此电脑地址
    • 什么是“app.example.com.au”?尝试在 nginx 的 conf 文件中添加“127.0.0.1”作为 server alias
    • 无论如何我现在需要去,明天我会问创建这个的开发人员,谢谢!
    猜你喜欢
    • 2017-11-12
    • 2013-05-14
    • 2023-03-22
    • 2011-05-14
    • 2019-06-05
    • 2015-08-10
    • 2015-09-25
    • 2016-07-29
    • 2021-11-19
    相关资源
    最近更新 更多