И это всё МОЁ

Всем привет.
Столкнулся с такой проблемой.
Было принято решение использовать схему соединения для доступа к сайтам Haproxy1/tcp -> Haproxy2/https -> nginx/http


Haproxy1/tcp - выступает в качестве балансировщика, сервер находится в первом облаке.


Haproxy2/https - занимается https и гонит трафик на nginx. в этом случае haproxy и nginx находятся в локальной сети ДЦ.


Задача реализовать данную статью (https://habr.com/ru/post/247297/). Только у меня как писал выше в схеме еще один прокси сервер.


Нужна именно Балансировка на транспортном уровне (Layer 4): передача TCP-трафика с HAProxy на Nginx.


Сложность сейчас в том, что при настройке сервера haproxy1 сайт работает нормально, передает tcp трафик и все круто, но на сервере harproxy2 я получаю IP не юзера, который зашел на сайт, а самого haproxy1


defaults
log global
option redispatch
option tcp-smart-accept
option tcp-smart-connect
retries 3
maxconn 2000
timeout connect 5000
timeout check 3000
timeout client 50000
timeout server 50000

frontend https_frontend_ssl_pass
mode tcp
bind *:443
default_backend web_server_tcp

backend web_server_tcp
mode tcp
balance roundrobin
server s1_tcp 2.2.2.2:443 check
#server s2_tcp 2.2.2.2:443 send-proxy check


Проблема заключается в последней строчке, при использовании send-proxy сайт падает, а в логах haproxy2 получаю ошибку.


https_sites/1: SSL handshake failure


В моем случае я так понимаю, нужно докрутить Haproxy2/https. Но не знаю в какую сторону смотреть. В документации пока ответа не нашел. Настройка Haproxy2/https


frontend http_sites
mode http
option httplog
option dontlognull
bind *:80 process 1

acl letsencrypt-acl path_beg /.well-known/acme-challenge/
redirect scheme https code 301 if !letsencrypt-acl

use_backend letsencrypt-backend if letsencrypt-acl

default_backend nginx-backend

frontend https_sites
mode http
option httplog
option dontlognull
bind *:443 ssl crt /etc/haproxy/ssl process 1

http-request set-header X-Forwarded-Proto https

default_backend nginx-backend

backend nginx-backend
mode http
option forwardfor
option httpchk GET /
http-check send hdr Host localhost

server nginx-1 127.0.0.1:8080 weight 50 maxconn 1000 check inter 4s


backend letsencrypt-backend
mode http
server letsencrypt 127.0.0.1:8888









 ,