Listen 80 ServerName localhost LoadModule mpm_event_module modules/mod_mpm_event.so LoadModule authn_file_module modules/mod_authn_file.so LoadModule authn_core_module modules/mod_authn_core.so LoadModule authz_host_module modules/mod_authz_host.so LoadModule authz_groupfile_module modules/mod_authz_groupfile.so LoadModule authz_user_module modules/mod_authz_user.so LoadModule authz_core_module modules/mod_authz_core.so LoadModule headers_module modules/mod_headers.so LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_balancer_module modules/mod_proxy_balancer.so LoadModule proxy_http_module modules/mod_proxy_http.so LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so LoadModule rewrite_module modules/mod_rewrite.so LoadModule slotmem_shm_module modules/mod_slotmem_shm.so LoadModule unixd_module modules/mod_unixd.so User daemon Group daemon ErrorLog /proc/self/fd/2 Header add Set-Cookie "SERVERID=sticky.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED BalancerMember "http://server-john:3000" route=john BalancerMember "http://server-paul:3000" route=paul BalancerMember "http://server-george:3000" route=george BalancerMember "http://server-ringo:3000" route=ringo ProxySet stickysession=SERVERID BalancerMember "ws://server-john:3000" route=john BalancerMember "ws://server-paul:3000" route=paul BalancerMember "ws://server-george:3000" route=george BalancerMember "ws://server-ringo:3000" route=ringo ProxySet stickysession=SERVERID RewriteEngine On RewriteCond %{HTTP:Upgrade} =websocket [NC] RewriteRule /(.*) balancer://nodes_ws/$1 [P,L] RewriteCond %{HTTP:Upgrade} !=websocket [NC] RewriteRule /(.*) balancer://nodes_polling/$1 [P,L] # must be bigger than pingInterval (25s by default) + pingTimeout (20s by default) ProxyTimeout 60