Tenho uma instância do Apache em execução onde 150 clientes usam long polling em alguns scripts PHP para receber atualizações sobre novos arquivos que foram enviados. Isso, é claro, cria 150 threads do Apache. Agora parece que o servidor web está no seu limite (é uma máquina de 10 anos) e não quero carregar essa bagagem para um novo servidor.
Estou pensando em usar um servidor WebSocket que lidaria com o caso de uso de forma mais eficiente, mas me pergunto se 150 clientes acessando o Apache que encaminha as solicitações para meu servidor WebSocket também produziriam tantos threads do Apache ou se há uma maneira mais eficiente de lidar com isso.
Não posso substituir o Apache, talvez apenas com nginx porque ele também tem que fornecer uma homepage. Não posso usar outra porta para o servidor WebSocket porque isso significaria que eu teria que discutir regras de atualização de firewall com cerca de 100 clientes. Isso é solucionável?
Você provavelmente pode colocar o Nginx na frente dele como um proxy. Você então o configura para encaminhar tráfego normal para o Apache e usa um caminho especial para o websocket para que você possa fazer um bloco Nginx que faça proxy disso para seu servidor websocket.
Então você terá dois blocos:
Os locais são correspondidos por especificidade, não por ordem.