I seem to remember reading that something in IPv6 could help with this. I thought I would ask here to see if per-to-peer http could be a possibility these days. I am familiar with hole-punching, but I gather that this is a UDP thing, not TCP.
Note, however, that you'll have to run your web server on IPv6, and only IPv6-enabled web clients will be able to connect to it. That is protocol limitation, IPv4 devices cannot talk to IPv6 devices, and vice versa.