NAT Box.
eth0 -> 2 IPS (the public ones from your ISP, you actually only need 1 of them): external device (aa.bb.cc.dd/ee)
eth1 -> internal device (192.168.0.1)
Web Server Box.
eth0 -> internal device connected to NAT box. (192.168.1.2)
----------
Problem : You get a request to aa.bb.cc.dd port 80.
solution 1): You can use iptable/ipchain to forward all incomming packets from aa.bb.cc.dd on port 80 to 192.168.1.2 port 80 .
solution 2) you can use squid on your nat box. Squid acts as a caching server. Let say you call
http://yourserver.com/index.html it lands you your NAT box. It lands on port 80 so quid kicks in to handle the responce. Squid check to see if /index.html is in it's cache ... if it is not -> it will call in your web server get index.html and forward it back to the user. If it is in the cache it will serve that copy back to the user.
Solution 1) -> 1 command line (or 2 max)
Solution 2) -> Installing + configuring squid + understanding how it works.
To be honest, I have never worked with iptable or ipchange or squid. I just know what they are and what they are supposed to do.