如何在运行 HTTP 的 Flask 服务器收到 HTTPS 请求时抑制 gevent 错误消息

问题描述 投票:0回答:1

如果我(或其他人)对运行 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 代码,所以我无法在记录异常之前捕获它。还有其他方法可以抑制吗

flask gevent
1个回答
0
投票

目标是接受连接而不执行任何操作。让用户收到 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)
© www.soinside.com 2019 - 2024. All rights reserved.