Quiero usar Apache para revertir el proxy de mi servidor websocket.
El servidor web de socket funciona correctamente sin Apache y no tiene problemas. Pero cuando se usa Apache como proxy inverso de websocket, no se entrega ningún mensaje al usuario , incluso aunque el protocolo de enlace de web socket se realice correctamente .
Cuando se cierra la conexión, todos los mensajes se transmiten repentinamente al usuario.
como puede ver, el protocolo de enlace con el servidor de socket se realiza correctamente, pero no se envía ningún mensaje de bienvenida al cliente (cuando se usa el proxy inverso de apache)
cerrar el servidor de socket (como ctrl+c) hará que todos los datos atascados lleguen a la vez
En mi experimento, si se repite una gran cantidad de texto al comienzo de la conexión (en el servidor de socket como mensaje de bienvenida), después de pasar un cierto volumen ( tal vez por ($ i <200) veces repitiendo el mensaje de bienvenida en lugar de una vez ) , todo el texto se transfiere al usuario. Apache parece estar almacenando en búfer el cuerpo del socket web y lo muestra después de que el búfer está lleno
mi directiva apache para proxy inverso:
RewriteCond %{HTTP:Upgrade} websocket [NC] RewriteCond %{HTTP:Connection} upgrade [NC] RewriteRule ^/?(.*) ws://127.0.0.1:6001/$1 [P,L] Web socket server : laravel websocket Php version : 8 Os : centos 7 - managed by whmactualización: instalé nginx e intenté lo mismo todo y funciona. Creo que hay una probabilidad muy alta de que este problema sea de Apache o sus módulos.
alguna idea de lo que esta pasando?