# Adobe Connect with HAProxy

**URL:** <https://discourse.haproxy.org/t/adobe-connect-with-haproxy/7583>\
**Category:** Help!\
**Created:** [April 19, 2022, 9:49am UTC](https://discourse.haproxy.org/t/adobe-connect-with-haproxy/7583 "2022-04-19T09:49:01Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Ante](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.haproxy.org/ante/32/1690_2.png) [@Ante](https://discourse.haproxy.org/u/Ante)\
**Post date:** [April 19, 2022, 9:49am UTC](https://discourse.haproxy.org/t/adobe-connect-with-haproxy/7583/1 "2022-04-19T09:49:01Z")

</div>

Hi all,

i need help with HAProxy and Adobe Connect. Here is the diagram:

 ![connect-diagram](https://us1.discourse-cdn.com/flex016/uploads/haproxy/original/2X/2/272bd53e820ed10a92b78741c866e235968c12a2.png)

And i followed these links for configuration:

> **[High-Available RTMP Platform with HAProxy and crtmpserver - HAProxy Technologies](https://www.haproxy.com/blog/high-available-rtmp-platform-with-haproxy-and-crtmpserver/)**
>
> In this blog, we share how to build a high-available RTMP platform for delivering video content with HAProxy and crtmpserver.

> **[Websockets Load Balancing with HAProxy - HAProxy Technologies](https://www.haproxy.com/blog/websockets-load-balancing-with-haproxy/)**
>
> In this blog post you cover all about websocket and why to use it, as well as how HAProxy can take care of all your load balancing needs with websockets.

Here is my configuration:

```auto
global
  chroot /var/lib/haproxy
  daemon  
  group haproxy
  log 127.0.0.1:514 local0 info
  log-send-hostname  
  maxconn 50000
  pidfile /run/haproxy.pid
  ssl-default-bind-ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256
  ssl-default-bind-options no-sslv3 no-tlsv10 no-tlsv11 no-tls-tickets
  stats socket ipv4@127.0.0.1:9999 level admin
  stats socket /var/run/hapee-lb.sock mode 666 level admin
  stats timeout 2m
  tune.ssl.default-dh-param 2048
  user haproxy

defaults
  log global
  log-format 'load_balancers: {"host":"%H","ident":"haproxy","pid":%pid,"time":"%Tl","haproxy":{"conn":{"act":%ac,"fe":%fc,"be":%bc,"srv":%sc},"queue":{"backend":%bq,"srv":%sq},"time":{"tq":%Tq,"tw":%Tw,"tc":%Tc,"tr":%Tr,"tt":%Tt},"termination_state":"%tsc","retries":%rc,"network":{"client_ip":"%ci","client_port":%cp,"frontend_ip":"%fi","frontend_port":%fp},"ssl":{"version":"%sslv","ciphers":"%sslc"},"request":{"method":"%HM","uri":"%[capture.req.uri,json(utf8s)]","protocol":"%HV","header":{"host":"%[capture.req.hdr(0),json(utf8s)]","xforwardfor":"%[capture.req.hdr(1),json(utf8s)]","referer":"%[capture.req.hdr(2),json(utf8s)]"}},"name":{"backend":"%b","frontend":"%ft","server":"%s"},"response":{"status_code":%ST,"header":{"xrequestid":"%[capture.res.hdr(0),json(utf8s)]"}},"bytes":{"uploaded":%U,"read":%B}}}'
  maxconn 50000
  mode http
  option redispatch
  option dontlognull
  option http-server-close
  option forwardfor except 127.0.0.0/8
  option http-pretend-keepalive
  retries 3
  stats enable
  timeout http-request 10s
  timeout queue 1m
  timeout connect 10s
  timeout client 1m
  timeout server 15m
  timeout check 10s
  timeout tunnel 3600s

frontend default
  bind haproxy_ip:443 ssl crt /etc/haproxy/certs/ no-sslv3 no-tls-tickets
  bind haproxy_ip:80 
  mode http
  acl connect_dev hdr(host) -i connect
  acl connect_devapp hdr(host) -i connect-app
  http-request redirect scheme https unless { ssl_fc }
  http-request set-header X-Forwarded-Proto https
  http-request set-header FRONT_END_HTTPS on
  use_backend connect_devapp if connect_devapp
  use_backend connect_dev if connect_dev

frontend eightzeroeightzero
  bind haproxy_ip:8080 
  mode http
  acl connect_dev hdr(host) -i connect
  acl connect_devapp hdr(host) -i connect-app
  use_backend connect_devapp_8080 if connect_devapp
  use_backend connect_dev_8080 if connect_dev

backend connect_dev
  balance leastconn
  server connect_dev_1 internal-ip-connect:8443 check maxconn 200 verify none

backend connect_dev_8080
  balance leastconn
  server connect_dev_1 internal-ip-connect:8080

backend connect_devapp
  balance leastconn
  server connect_devapp internal-ip-connect-app:9002

backend connect_devapp_8080
  balance leastconn
  server connect_devapp internal-ip-connect-app:8080

defaults
  log global
  mode tcp

frontend devmtg
  bind haproxy_ip:443 ssl crt /etc/haproxy/certs/ no-sslv3 no-tls-tickets
  mode tcp
  acl connect_devmtg hdr(host) -i connect-mtg
  use_backend connect_devmtg if connect_devmtg

frontend rtmp
  bind haproxy_ip:1935 name rtmp
  mode tcp
  option tcplog
  acl connect_devmtg hdr(host) -i connect-mtg
  acl connect_devapp_2 hdr(host) -i connect-app
  use_backend connect_devapp_2 if connect_devapp_2
  use_backend connect_devmtg if connect_devmtg

backend connect_devmtg
  mode tcp
  balance roundrobin
  stick store-request src
  stick on src
  stick-table type ip size 200k expire 20m
  server connect_devmtg internal-ip-connect-mtg:1935

backend connect_devapp_2
  mode tcp
  balance roundrobin
  stick store-request src
  stick on src
  stick-table type ip size 200k expire 20m
  server connect_devapp_2 internal-ip-connect-app:1935

```

And what i get when i try to connect via websockets:

```auto
{"type":"NCFunc","method":"connect","url":"rtmps://connect-mtg:443/?rtmp://localhost:8506/intro/bwcheck","params":{"ticket":"","reconnection":false,"swfUrl":"https://connect-dev/common/ccapps/root-react-app/meetingDiagnosticPage.html"}}

{"method":"onStatus","status":{"code":"NetConnection.Connect.Closed","description":"","encoding":0,"ncDetails":"","type":"status"},"type":"NCSink"}

```

Any hints?
