【问题标题】:why i get 502 Bad Gataway error with nginx 1.18.0为什么我在使用 nginx 1.18.0 时出现 502 Bad Gateway 错误
【发布时间】:2021-08-07 10:51:51
【问题描述】:

我正在尝试通过远程桌面在本地服务器(我的大学服务器)上部署我的烧瓶应用程序。

我的应用程序是使用flask构建的,至于目前我只是试图将它部署在开发服务器上,只是为了知道它有希望运行。

我的项目在 venv 中,当我尝试部署它时,我得到了这个错误:

"10.0.0.1 - - [18/May/2021 09:50:45] 代码 400,消息错误请求语法 ("\x16\x03\x01\x00½\x01\x00\x00¹\x03\x03,\ x05ù\x96ï;Ì\x02E\x8a\xadJüÃÅG\x8a¡\x8b

在网页端我得到 502 bad getaway。

这就是我运行我的应用程序的方式:

def flask_main_run():
    app = get_app()
    app = manage_app(app)
    db = get_db()
    db.create_all()
    app.run(host="0.0.0.0", port=443)

我怎样才能克服这个错误并将我的应用程序部署在本地服务器上?

【问题讨论】:

  • 你的 nginx 配置是什么?似乎您将 SSL 请求未解码到您的烧瓶应用程序中。
  • 我很抱歉我的无知,但这是我第一次尝试部署网络应用程序。我正在使用 Windows 10,但找不到我的 nginx.conf 文件。我需要从头开始编写它还是应该在我通过烧瓶运行运行我的应用程序时自动创建它?
  • 不,当您通过烧瓶运行运行应用程序时,不会调用 nginx。 nginx 将是处理请求的服务器;如果您只是在本地开发应用程序,请在自定义端口(如 5000)上运行它,然后通过该端口访问您的应用程序。由于您在标题中提到 nginx,我猜它在链中的某个位置并且您自己安装了一些东西(flask 不会安装或启动 nginx,这是作为单独的任务完成的。然后配置 nginx,如下面的答案所示当请求到达 nginx 时将请求路由到您的烧瓶应用程序)。
  • 感谢您的回答。 apperantley 问题出在我的大学服务器有一些限制,IT 人员修复了它,所以我不知道他们的解决方案是什么。 nginx conf 文件已在其主服务器中配置,并且我已被命令不要更改它。

标签: nginx flask


【解决方案1】:

希望 Nginx 也将在端口 80 和 443 上运行,并且您正在尝试在烧瓶中绑定相同的端口,因此您的烧瓶应用程序根本没有运行。

将flask应用程序端口更改为9000之类的其他端口,并将proxy_pass放入nginx监听服务器:

proxy_pass  http://127.0.0.1:9000

【讨论】:

    猜你喜欢
    • 2021-01-25
    • 2022-11-22
    • 2016-10-23
    • 2021-08-03
    • 2018-11-12
    • 1970-01-01
    • 2018-04-23
    • 2018-05-23
    • 1970-01-01
    相关资源
    最近更新 更多