You quote my post but you aren't using it. I don't use it with cloudflare, but I have been using that config for more than a year.
This line sends all of the query params and adds the ip, just in case, to XBT
Code:
proxy_pass http://127.0.0.1:2710/$1/announce$is_args$args&ip=$remote_addr;
I am not an expert with nginx, but I think this line just rewrites the incoming url and does nothing for XBT
Code:
rewrite ^(.*)$ $1?ip=$remote_addr break;
since this line is what is sent to XBT
Code:
proxy_pass http://127.0.0.1:4000/;
Maybe try getting SSL to works without Cloudflare. Once you have that working move on to Cloudflare.
Hope you get it sorted.