如果我(或其他人)对运行 gevent 的“普通”flask 服务器(期望 HTTP 请求)进行 HTTPS 调用,我会收到以下消息:
socket3.socket位于0x103fd04c0对象,fd=7,family=30, type=1, proto=0>: (from ('::1', 50418, 0, 0)) 无效的 HTTP 方法: '\x16\x03\x01\x01:\x01\x00\x016\x03\x03zGÀQÝQ0r\x0eCªðÏ\x19é!\x1dùº\x92u9\x92õ?\x0b%\x1b\x13\x00|I \x01¸ìQ:â©\x86\x89̻o\x15õ\x07\x8cQ\xa0ä$\x1d\x0e&8Å\x89\x1cî$jñ\x00b\x13\x03\x13\x02\x13\x01Ì©Ì ¡ÌªÀ0À,À(À$À\x14À '
我认为异常不会到达 python 代码,所以我无法在记录异常之前捕获它。还有其他方法可以抑制吗
目标是接受连接而不执行任何操作。让用户收到 https 证书错误,但这应该会阻止您的服务器上的错误。
更改为:
https_server = WSGIServer(("0.0.0.0", 443), app, do_handshake_on_connect=False)
try:
https_server.start()
except as err:
# you may want to autoredirect to http here
pass
while True:
gevent_sleep(60)