
Então, eu tenho um servidor WebSocket em C++, que é uma entidade completamente autônoma - lida com análise de cabeçalho, recebimento, envio, tudo por conta própria, ouvindo diretamente na porta.
O problema é que ele precisa ser executado em um servidor junto com o Apache, e isso é um pouco problemático. Agora, houve uma solução aqui para um problema semelhante envolvendo mod_proxy, mas espero poder interceptar e redirecionar a comunicação WebSocket antes mesmo que o Apache saiba disso, possivelmente com iptables.
Portanto, a questão é: é possível direcionar o tráfego com destino abater papo.mysite.net para um servidor WebSocket, digamos, na porta 8080, enquanto qualquer outra coisa direcionada para mysite.net prossegue conforme o esperado para o Apache?
Responder1
Acontece que isso é muito fácil; basta codificar o cliente para acessar o servidor em ws://mysite.com:8080
. Com toda a divulgação de que WebSockets podem usar a porta 80, fiquei bastante surpreso ao saber que isso não acontece.precisarpara.
Responder2
Desculpe, não é possível com o iptables porque o iptables não fala/entende o protocolo http. Alguém deveria escrever ip_conntrack_http para que isso pudesse realmente funcionar (algo semelhante a ftp conntrack thingie) ;-) Até então você provavelmente deveria usar o apache com mod_proxy ou nginx.