jam-cloud/websocket-gateway/config/haproxy.cfg

57 lines
1.9 KiB
INI

global
maxconn 4096
pidfile ~/tmp/haproxy-queue.pid
defaults
log global
log 127.0.0.1 local0
log 127.0.0.1 local1 notice
mode tcp
option httplog
option http-server-close
#option dontlognull
option redispatch
option contstats
retries 3
backlog 10000
timeout client 25s
timeout connect 5s
timeout server 25s
# timeout tunnel available in ALOHA 5.5 or HAProxy 1.5-dev10 and higher
timeout tunnel 3600s
timeout http-keep-alive 1s
timeout http-request 15s
timeout queue 30s
timeout tarpit 60s
default-server inter 3s rise 2 fall 3
option forwardfor
frontend gateways
bind *:6767
default_backend bk_ws
backend bk_ws
balance leastconn
## websocket protocol validation
# acl hdr_connection_upgrade hdr(Connection) -i upgrade
# acl hdr_upgrade_websocket hdr(Upgrade) -i websocket
# acl hdr_websocket_key hdr_cnt(Sec-WebSocket-Key) eq 1
# acl hdr_websocket_version hdr_cnt(Sec-WebSocket-Version) eq 1
# acl hdr_host hdr_cnt(Sec-WebSocket-Version) eq 1
# http-request deny if ! hdr_connection_upgrade ! hdr_upgrade_websocket ! hdr_w
#ebsocket_key ! hdr_websocket_version ! hdr_host
## ensure our application protocol name is valid
## (don't forget to update the list each time you publish new applications)
acl ws_valid_protocol hdr(Sec-WebSocket-Protocol) echo-protocol
http-request deny if ! ws_valid_protocol
## websocket health checking
#option httpchk GET / HTTP/1.1\r\nHost:\ ws.domain.com\r\nConnection:\ Upgrade
#\r\nUpgrade:\ websocket\r\nSec-WebSocket-Key:\ haproxy\r\nSec-WebSocket-Version
# <span class="wp-smiley emoji emoji-uneasy" title=":\">:\</span> 13\r\nSec-WebSocket-Protocol:\ echo-protocol
# http-check expect status 101
server websrv1 127.0.0.1:6769 maxconn 1000 weight 10 cookie gateway1 check
server websrv2 127.0.0.1:6771 maxconn 1000 weight 10 cookie gateway2 check