The most important thing to determine is whether what you are trying to emulate is a "proxy server" or a "
reverse proxy server".
The difference is this:
A Proxy server is something that in-house users talk to instead of talking directly to the Internet.
A Reverse Proxy server is something that Internet users talk to instead of talking directory to your in-house server.
It's very easy to get confused because we tend to be sloppy about what we say.
I have a proxy server on my network (squid). It acts as a cache for software updates so that if I have 4 machines that need package downloads to update their OS's, the first update downloads via Squid, which caches it on my LAN and serves up the cached copy to the other 3 machines as they ask for it. That means that I'm reducing traffic on the Internet and I'm getting gigabit speeds on the cache so the other machines can get their work done faster.
In ancient times, Windows sites often used SOCKS as a proxy server, though I'm not clear how. I don't use my Squid proxy for websites because these days most websites have too many dynamic pages and therefore don't cache well.
More likely, however your client is using a reverse proxy. This is especially common for
JEE webapp servers for several reasons.
A reverse proxy generally listens on the public Internet ports 80 (http) and 443 (https). However, because of a historical quirk, TCP/IP port numbers less than 4096 cannot be opened for listening by just any application. And Java's "write once/run anywhere" policy doesn't allow the hacks that apps written in languages like C can use to get around that.
The common reverse proxy apps, however,
can get around that problem. They also add some additional benefits over direct connection from the Internet to JEE"
1. The same reverse proxy can not only talk to (multiple!) java server(s), but also host or proxy for other web application language environments like PHP, Python, Ruby on Rails, and so forth.
2. As mentioned above, a reverse proxy can listen on ports 80 and 443 and proxy to, for example, a
Tomcat server configured behind your firewall listening on ports 8080, 8443 and proxy port 8009.
3. A reverse proxy can aid in load balancing.
4. Setting up SSL is a LOT easier for the popular reverse proxy servers than it is for JEE!
OK, I've listed the benefits, now what are the options?
Quite a few. A really big shop may use an actual proxy applicance such as F5, which is a box that plugs into your Internet-facing network and feeds to your DMZ network where your JEE server(s) hopefully live safely hidden from the cruel outside world.
Alternatively, a reverse proxy app is common. The "big 3" are Apache HTTP, Nginx, and Microsoft's IIS. The Coderanch uses Nginx which is pretty lightweight and easy to configure.
From the sound of it, Fiddler is also a reverse proxy server which boasts extensive diagnostic abilities. Unfortunately, while I've well-experience in Apache and Nginx (I use both myself) and even dimly remember some IIS, I've never worked with Fiddler.
There's nothing really magic about a proxy/reverse proxy. All they do is take requests from one place and route them to another. In the process they may alter the URL and/or ports and often add or change headers (which is where I think your real problems may lie). The system is so simple overall that it's actually just a secondary function to the "Big 3" webapp servers I just mentioned.