У меня проблема, когда мне нужно одно и то же TCP-соединение RTMP, чтобы подключиться к тому же серверу, к которому оно подключено, если это был http или https. Следующее работает с 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
Мой вопрос: если я введу https-соединение, как я смогу различить использование одного и того же внутреннего сервера, к которому он подключается, если это http или https. Я попытался проверить, смогу ли я использовать 2 записи «stick match src table», но это не сработало. Например, я пробовал следующее, и надеюсь, вы понимаете, чего я пытаюсь достичь.
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
Вышеупомянутое не работает, когда я пытаюсь использовать https. Если я закомментирую одно, другое будет работать, поэтому возникнет конфликт. Мне, вероятно, придется добавить условие, и я пробовал несколько, но безуспешно. Есть указатели? Заранее спасибо.