我真是农村来的,一路玩Ha 尽是挖到新坑然后一路填坑。老碰到一些连官方论坛与github都没讨论个结果的错误问题。
先贴一下错误代码。
2018-05-31 11:15:14 ERROR (MainThread) [aiohttp.server] Error handling request
Traceback (most recent call last):
File "/etc/homeassistant/deps/aiohttp/web_protocol.py", line 276, in data_received
messages, upgraded, tail = self._request_parser.feed_data(data)
File "aiohttp/_http_parser.pyx", line 269, in aiohttp._http_parser.HttpParser.feed_data (aiohttp/_http_parser.c:4257)
aiohttp.http_exceptions.BadStatusLine: invalid HTTP method
这个错误很奇怪,之前一直没碰到过。直到此次hassio重安装0.70后发现的。大概意思就是ha服务端不接受这种提交的数据,最有可能的原因就是 ha本身的配置是http的(未启用ssl).这时你用的是 http://192.168.1.22:8123的方式去访问与操作HA的。
但如果你用 https://192.168.1.22:8123 的方式去操作它的服务或查询状态的话,你就会得到这种错误。
大家会想,既然用都未配置https ssl啦,谁还用这种带https的连接去操作ha呢?
有,真有!但具体是who where why 我讲不清。但我有个案例
我之前用frp做的穿透,把ha的8123穿透出去 配的域名是 a.xxx.com,那我frp客户端的配置就是直接把https的数据包转发给ha机器 的8123端口
访问地址是 https://a.xxx.com ,使用正常。
但昨天 开始用hassio + NGINX Home Assistant SSL proxy(这种方式ha不用配置ssl,直接http就可以内网访问) 后换了个新的域名 b.xxx.com ,还是用frp穿透,frp客户端把https的数据包转发给 nginx r 443再经由nginx 转发给 ha的8123
问题来了,从昨天 开始一直出现 Error handling request : invalid HTTP method 的错误。一直百思不得期解,经过多次测试,各种测试工具一起上后发现 之前a.xxx.com的那个域名有数据提交过去,相当于有人或有物直接 通过 https://a.xxx.com 来调用或查询 ha服务,经过frps操作后就变成直接访问 https://haip:8123的形式了,错误就boom出来了。
虽然 我换了个新域名,但我frpc客户端没把旧域名转发给关掉,所以导致一直出现这种错误。
我也想不通都换新域名了为啥旧域名还会有人访问,估计是谷歌推送,或者老婆的手机客户端打开,又或者是外星人入侵吧。
最终解决方案就是我把旧域名的转发关了。世界清静了。
发这个贴子的目的嘛,就是想说玩ha太累,真不是正常人能玩得来的。在座各位一直折腾下去不换平台的绝对都是人材!!!
像这种破错误抛出来鬼知道是发生了什么事啊。是python的异常,不是ha的异常。写出来这错误是希望以后若有人碰到类似的直接按关键字就可以搜索得到。
|