You've got a classic routing loop..
A lan client resolves
http://xxx.no-ip.org to your external address
Packets go from the client to the external interface which forwards by iptables rules to the www server in the LAN, however the source address is still a local client...
so the www server replies locally to the client , from it's local address.
The client expects replies from the resolved external address and ignores the local replies...
Install a lightweight dns proxy eg
dnsmasq on the gateway, and create an entry resolving
www.xxx.no-ip.org to the internal ip of the www server.
It's the same problem as browsing a dmz with internal numbers..
(Make the dns proxy listen on only the internal LAN interface)