Eu tenho um problema em que eu preciso da mesma conexão TCP RTMP para acessar o mesmo servidor com o qual ele se conectou, se era http ou https. O seguinte trabalha com http:
frontend http
mode http
bind :80
default_backend web_servers
frontend rtmp
mode tcp
bind :1935
default_backend rtmp
backend web_servers
mode http
option forwardfor
balance roundrobin
stick store-request src
stick-table type ip size 200k expire 2m
server web1 10.0.0.2:8080 check
server web2 10.0.0.3:8080 check
backend rtmp
mode tcp
stick match src table web_servers
server web1 10.0.0.2:1935
server web2 10.0.0.3:1935
A minha pergunta é se eu introduzir a conexão https, como eu distinguiria usar o mesmo servidor backend ao qual ele se conecta se é http ou https. Eu tentei ver se eu posso usar 2 "stick match src table" entradas, mas isso não funciona. Por exemplo, tentei o seguinte e espero que você entenda o que estou tentando realizar.
frontend http
mode http
bind :80
default_backend web_servers
frontend https
bind :8081
default_backend https
frontend rtmp
mode tcp
bind :1935
default_backend rtmp
backend web_servers
mode http
option forwardfor
balance roundrobin
stick store-request src
stick-table type ip size 200k expire 2m
server web1 10.0.0.2:8080 check
server web2 10.0.0.3:8080 check
backend https
balance roundrobin
stick store-request src
stick-table type ip size 200k expire 30m
option forwardfor
reqadd X-Forwarded-Proto:\ https
server web1 10.0.0.2:8080 check
server web2 10.0.0.3:8080 check
backend rtmp
mode tcp
stick match src table web_servers
stick match src table https <-- I added this
server web1 10.0.0.2:1935
server web2 10.0.0.3:1935
O acima não funciona quando tento com https. Se eu comentar um, o outro funcionará para que haja um conflito. Eu provavelmente vou ter que adicionar uma condição e eu tentei alguns, mas não tendo sorte. Alguma ponteira? Agradecemos antecipadamente.
Tags haproxy