标准HTTP请求的请求行的结构如下:
GET /some/path HTTP/1.1
在" / some / path"初始化RequestHandler;它处理这些请求。
但是我的服务器正在接收URI路径包含主机域的一些请求:
GET http://example.com/some/path HTTP/1.1
虽然URI(也就是路径," / some / path")是相同的,但Tornado无法识别匹配路径并返回404.在搜索高低之后我仍然无法找到解决方法。
如何配置Tornado来处理这些请求?
答案 0 :(得分:2)
Tornado目前不支持这种请求(#1036),并且没有简单的解决方法。
此样式的请求根据RFC 2616有效,但通常仅在连接到HTTP代理时使用。使用负载均衡器(如nginx )可以将这样的请求转换为更普遍支持的GET /some/path HTTP/1.1\r\nHost: example.com\r\n
(我很少见到代理风格的请求;我'我不确定是不是因为我通常使用nginx
或者其他因素在起作用。)