带有 SSL 的 Falcon 服务器在一些 hours/days 后停止工作

Falcon server with SSL stops working after some hours/days

我根据 documentation 中给出的示例使用 falcon 设置了一个非常基本的 Python API 服务器。它似乎工作得很好。

现在我扩展了代码以支持使用 SSL 证书的 HTTPS 请求

import ssl

httpd = simple_server.make_server('', 8000, app)
httpd.socket = ssl.wrap_socket(
        httpd.socket, server_side=True,
        certfile='cert.pem',
        keyfile='key.pem')
httpd.serve_forever()

再一次,它似乎工作正常,并且 HTTPS 请求的服务非常好......在开始时。

但是,一段时间后——可能是几个小时或 1-2 天(测试期间没有重负载)——服务器挂起并且不再接受任何请求。即使使用 Telnet,我也无法建立任何类型的连接。服务器脚本没有显示任何错误,并且 Ubuntu 告诉我一些进程仍在侦听此端口。

我从这里去哪里?我什至不知道如何排除故障。使用基本的 HTTP 服务器,到目前为止我还没有遇到任何问题

如以上评论所述,wsgirefsimple_server 并不真正适合生产。

假设您的应用程序包含在 app.py 中,并且您将 gunicorn 安装到当前的 Python(虚拟)环境中,您可以 运行 使用 TLS 作为您的应用程序:

gunicorn -b 0.0.0.0:443 --workers 8 --certfile /path/to/your/cert/cert.pem --key=/pat/to/your/cert/privkey.pem --access-logfile - app:app

(您当然应该根据应用程序的需要调整工作线程数、线程数等。)