I've built with the sub filter enabled and I'm finding it hangs requests if there is a match. It is a very simple substitution/replace. I've resorted to following the request in GDB and the sub module completes and calls the next body filter (which in my case appears to be the charset module). I have no other odd modules enabled other than using threads with a thread pool size of two (shouldn't matter, right?). Pausing all the threads in GDB shows no obvious place it is hanging.
If I change the match string to something that doesn't match anything, the request works fine.
Here is my config:
location / {
root html;
index index.html index.htm;
sub_filter '</title>' 'xxx</title>';
sub_filter_once on;
}
nginx -V
nginx version: nginx/1.7.11
built by gcc 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4)
configure arguments: --with-http_sub_module --with-debug --with-threads --with-cc-opt='-O0 -g'
Thanks!