将 Flask API 部署到 Elastic Beanstalk 后出现 Nginx 502 Bad Gateway |111:连接到上游时连接被拒绝

问题描述 投票:0回答:1

我对服务器非常陌生,从开发阶段进入生产阶段,最近在将 Flask API 部署到 AWS Elastic Beanstalk 时遇到了一些错误。正如它所说,我通过 EB CLI“成功”部署了我的 API,但是当我打开域时,它只显示“502 Bad Gateway - nginx”。

我下载了日志,我非常关心 nginx 的 error.log 的内容:

connect() failed (111: Connection refused) while connecting to upstream, client: 172.31.41.209, server: , request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:8000/", host: "172.31.22.xxx"

我认为部署到 EB 的过程非常简单,但我尝试解决这个问题,但没能成功。我的 API 在开发中运行完美;我已经在默认端口的本地主机中对其进行了多次测试,但现在在部署中它不再起作用。所以我认为这更多是与反向代理相关的问题,但我对此了解不多,所以非常感谢您的帮助。我一直使用 Windows,几乎所有信息都与 Linux 相关,所以我对此的了解非常有限。

我将粘贴 web.stdout.log 的片段,它看起来显示了一些与 Gunicorn 相关的错误:

Apr 27 23:44:18 ip-172-31-22-xxx web[2165]: [2024-04-27 23:44:18 +0000] [2165] [INFO] Starting gunicorn 22.0.0

Apr 27 23:44:18 ip-172-31-22-xxx web[2165]: [2024-04-27 23:44:18 +0000] [2165] [INFO] Listening at: http://127.0.0.1:8000 (2165)

Apr 27 23:44:18 ip-172-31-22-xxx web[2165]: [2024-04-27 23:44:18 +0000] [2165] [INFO] Using worker: gthread

Apr 27 23:44:18 ip-172-31-22-xxx web[2197]: [2024-04-27 23:44:18 +0000] [2197] [INFO] Booting worker with pid: 2197

Apr 27 23:44:18 ip-172-31-22-xxx web[2197]: [2024-04-27 23:44:18 +0000] [2197] [ERROR] Exception in worker process

Apr 27 23:44:18 ip-172-31-22-xxx web[2197]: Traceback (most recent call last):
Apr 27 23:44:18 ip-172-31-22-xxx web[2197]:  File "/var/app/venv/staging-LQM1lest/lib64/python3.11/site-packages/gunicorn/arbiter.py", line 609, in spawn_worker

请帮忙!

在我对服务器、部署、AWS 的有限知识范围内,我试图找到 API 与服务器交互方式的错误,但我还没有做到这一点,所以我希望有人了解这一点并愿意帮助我,可能会告诉我要修复什么以及如何做(需要什么工具、命令等)才能解决这个问题。预先非常感谢。

amazon-web-services flask nginx amazon-elastic-beanstalk http-status-code-502
1个回答
0
投票

您的

main.py
或项目主文件中有类似的内容。

uvicorn.run(app, host="127.0.0.1", port=8000)

你必须像这样更新上面的行

uvicorn.run(app, host="0.0.0.0", port=8000)

如果您使用 cmd 来运行服务器,请像这样使用 cmd,

uvicorn main:app --host 0.0.0.0 --port 8000
© www.soinside.com 2019 - 2024. All rights reserved.