I've been running Apache under Xubuntu for quite a while now. It always used to work fairly well, but every now and then a request would not get through. The browser would connect, and just sit forever waiting for a reply. Nothing would show up in any logs. After trying everything and seeing no apparent pattern I blamed the ISP.
So I've moved and now this is happening every single time. Strangely, a few requests are showing up in access.log, but most do not. When I start Apache, it will spawn a single instance of the apache2 process, running as root. Then, 5 more instances spawn, running under www-data, either immediately or when a request is made. Nothing is ever sent back. I can connect with Telnet and make any request or just type random gibberish and get no reply at all, but stay connected forever - in fact I can't even Ctrl+C to disconnect.
If I access the server through my LAN IP (192.168.x.x) it works fine and responds instantly. Only using my Internet IP (with all appropriate ports forwarded as best I can tell) it will never reply.
One curiosity I notice is that if I access a page through my LAN IP, then another through the Internet IP, both show up in the access log. Still, the latter never receives a reply. I don't believe this to be a PHP or MySQL problem as it happens even with plain text files or files that don't exist.