【发布时间】:2021-02-13 01:58:04
【问题描述】:
我问了一个类似的问题,但没有得到任何帮助。本质上,我有一个烧瓶应用程序,它使用 gunicorn 作为 wsgi 和 nginx 作为网络服务器。出于某种原因,当我通过单独的 python 脚本(并且只有这个脚本,常规浏览器请求不这样做)发送发布请求时,服务器会将请求标头打印到控制台。问题在于,正如我所知道的,当我没有与服务器烧瓶/gunicorn 的 ssh 连接时(我不确定哪个实际在打印它)没有控制台可以打印。这会导致 500 内部服务器错误。当连接关闭时,我显然不能每 30 分钟不断地重新连接到服务器。我查看了 gunicorns 的文档,并且(通过我的研究)发现没有提到是什么导致了这种情况。这让我相信烧瓶是罪魁祸首,尽管我不能确定。输出如下所示
Host: [domain].com
X-Real-Ip: [my ip address]
X-Forwarded-For: [my ip address]
X-Forwarded-Proto: https
Connection: close
Content-Length: 18910
User-Agent: python-requests/2.25.1
Accept-Encoding: gzip, deflate
Accept: */*
Content-Type: application/x-www-form-urlencoded
Cookie: session=[session cookie]
任何帮助将不胜感激。谢谢!
【问题讨论】:
-
您究竟是如何推出 gunicorn 的?如果 gunicorn 没有运行,Nginx 可能会返回 500 错误。从您的描述中不清楚,但听起来您谈论的 SSH 会话实际上是您运行 gunicorn 的地方。您可能需要调查将 gunicorn 作为后台服务启动,以便在您注销 SSH 时它继续运行? (这是否符合您的情况?再次,您的问题并没有说明这一点)。这需要更多信息,例如服务器的基本 python 代码,以及 nginx/gunicorn 配置详细信息,然后才能提供帮助。
-
@v25 gunicorn 即使我关闭连接也运行良好。我可以通过网络浏览器访问它,它工作得很好,没有错误。 (gunicorn -w 3 app:app)
标签: python nginx flask gunicorn