首页 > 解决方案 > 停止烧瓶或 gunicorn 打印到控制台

问题描述

我问了一个类似的问题,但我没有得到任何帮助。本质上,我有一个烧瓶应用程序,它使用 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]

任何帮助将不胜感激。谢谢!

标签: pythonnginxflaskgunicorn

解决方案


简单的事情,在发送请求之前,通过使用ping确保您的服务器已启动。

如果 ping 响应成功,则发出 post 请求。否则 post call 会以异常结束,异常会导致像你这样的进一步请求的意外结果。

在这种情况下使用生成器,因为它不会给其他进程的执行带来麻烦。

如果需要发出定期请求,您最好使用 python 调度来运行任务。


推荐阅读