Mailing List Archive

Websocket Proxy issue related to changes in 2.4.47
Hello everyone,

First post, so please forgive any breaks in protocol. I've read for a few days,
but the traffic is light, so I'm not sure of the norms yet.

I have a third party websocket application that is hosted on Apache Tomcat 9.0.52 and
we use httpd to load balance multiple instances of it. It works quite well
under release 2.4.46, but when we upgrade to 2.4.47, the application breaks,
and we cannot sustain a websocket for more than 60 seconds. Setting the
ProxyWebsocketFallbackToProxyHttp directive to Off makes everything work as
expected. We also tried using the 2.4.48 and 2.4.51 with no differences in
behavior.

I would like to understand how to troubleshoot this issue, so I can find out if
the third party application is not spec compliant, or if there might be an
issue in httpd that is causing this. I'm concerned that eventually the
ProxyWebsocketFallbackToProxyHttp option will be deprecated and removed, so I
want to start discussions with the vendor now.

Would I be better off posting this to the developer list, or opening a Bugzilla
issue, or is this an appropriate venue for the question?

My balancer and proxy configurations are pasted below:

Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED
<Proxy balancer://webclient>
BalancerMember "http://localhost:8081/webclient" route=node1
BalancerMember "http://localhost:8082/webclient" route=node1

ProxySet lbmethod=byrequests stickysession=ROUTEID
</Proxy>
<Proxy balancer://s2kdocs>
BalancerMember "http://localhost:8081/s2kdocs" route=node1
BalancerMember "http://localhost:8082/s2kdocs" route=node1

ProxySet lbmethod=byrequests stickysession=ROUTEID
</Proxy>
<Proxy balancer://downloads>
BalancerMember "http://localhost:8081/downloads" route=node1
BalancerMember "http://localhost:8082/downloads" route=node1

ProxySet lbmethod=byrequests stickysession=ROUTEID
</Proxy>
<Proxy balancer://S2KService>
BalancerMember "http://localhost:8081/S2KService" route=node1
BalancerMember "http://localhost:8082/S2KService" route=node1

ProxySet lbmethod=byrequests stickysession=ROUTEID
</Proxy>
<Proxy balancer://GetOutputFileR50>
BalancerMember "http://localhost:8081/GetOutputFileR50" route=node1
BalancerMember "http://localhost:8082/GetOutputFileR50" route=node1

ProxySet lbmethod=byrequests stickysession=ROUTEID
</Proxy>
<Proxy balancer://GetOutputFileT50>
BalancerMember "http://localhost:8081/GetOutputFileT50" route=node1
BalancerMember "http://localhost:8082/GetOutputFileT50" route=node1

ProxySet lbmethod=byrequests stickysession=ROUTEID
</Proxy>
<Proxy balancer://webclient_ws>
BalancerMember "ws://localhost:9091/webclient_ws" route=node1
BalancerMember "ws://localhost:9092/webclient_ws" route=node1

ProxySet lbmethod=byrequests stickysession=ROUTEID
</Proxy>

# web sockets
ProxyPass /webclient_ws balancer://webclient_ws/

# http
ProxyPass /s2kdocs balancer://s2kdocs/
ProxyPassReverse /s2kdocs balancer://s2kdocs/

ProxyPass /downloads balancer://downloads/
ProxyPassReverse /downloads balancer://downloads/

ProxyPass /S2KService balancer://S2KService/
ProxyPassReverse /S2KService balancer://S2KService/

ProxyPass /GetOutputFileR50 balancer://GetOutputFileR50/
ProxyPassReverse /GetOutputFileR50 balancer://GetOutputFileR50/

ProxyPass /GetOutputFileT50 balancer://GetOutputFileT50/
ProxyPassReverse /GetOutputFileT50 balancer://GetOutputFileT50/

ProxyPass /webclient balancer://webclient/
ProxyPassReverse /webclient balancer://webclient/


The application is rather large and requires a lot of infrastructure to be
workable, since it is in part an IBM 5250 terminal emulator, and most people
don't have an AS/400 lying around to test with. I am happy to provide traces,
and build with patches for testing purposes.

Thank you,
-Greg

--
Greg Vilardi |Technical Lead E-mail:vilardi@panix.com
USnail: 354 Indian Head Rd |Vormittag Associates, Inc. Home:(631)864-1310
Commack, NY 11725 |Ronkonkoma, NY 11779 Cell:(631)627-1448
.sig Version 0.71 I thought, I wrote, I posted.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org