Starting with Apache 2.4.5 it is now at least possible to proxy websockets using apache. But socket.io apparently goes out of their way to make it as hard to proxy as possible...

<VirtualHost *:443>
        ServerName fluffy.luelistan.net
        #Redirect / http://fluffy.luelistan.net
        RewriteEngine on

# fuck socket.io
RewriteCond %{QUERY_STRING} !transport=websocket
RewriteRule /(.*)$ http://fluffy.luelistan.net:4242/$1 [P]

ProxyRequests off
ProxyPass /socket.io/ ws://localhost:4242/socket.io/
ProxyPassReverse /socket.io/ ws://localhost:4242/socket.io/

        SSLEngine On
</VirtualHost>

Btw, the reason I had to put this on https is... I kind of outsmarted myself by switching on HSTS on my site, not thinking about the fact this propagates to all subdomains and ports!