作者回复: 应该是有多个地方都符合替换条件,你只观察到一处了。开启sub_filter_once,对文件从头开始比较,发现匹配替换一处后就停止;关掉后,则替换所有的地方。
作者回复: 不会,因为:
1、首先proxy模块接收到包体后,会把chunk包体中实际内容取出,参见ngx_http_proxy_chunked_filter函数,它严格按照RFC规范解析,chunk编码也可以参照我的《Web协议详解与抓包实战》第21课。
2、当转发包体到客户端时,才会调用到sub过滤模块,所以sub模块处理的是原始包体。
作者回复: 这两个模块非常简单,类似第3部分content阶段的static模块,所以就把它的一些知识点融入到第三部分的其他课程中了,且它们目前没有什么使用价值,也没有举例的必要了,所以后面也不会讲。
作者回复: 很抱歉,这里出现了一个笔误,sub_filter模块名虽然是ngx_http_sub_filter_module,但是Nginx的configure里必须使用--with-http_sub_module加入模块。
作者回复: 相对使用场景更狭窄一些