2

У меня есть экземпляр GitLab в docker-compose на виртуальной машине в моей домашней сети.

Он работает за прокси-сервером HAProxy и доступен на git.example.com:443 .

Чтобы иметь доступ к ним как внутри моей домашней сети, так и за ее пределами, я должен иметь DNS-точку git.example.com по адресу HAProxy.

Из-за этого, когда я пытаюсь использовать SSH для git.example.com , он пытается вместо этого подключиться к прокси-серверу.

Поэтому я пытаюсь переслать его, чтобы, если кто-то попытается выполнить SSH на ssh.git.example.com:22 (или на порту 443), он перенаправит его на media.lan.example.com:4002 , потому что порт 4000 являются портами докер использует для контейнера для портов 80 , соответственно.

Как мне этого добиться? Чтобы иметь возможность SSH на порт 22 или 443 на ssh.git.example.com без необходимости изменения клиентом конфигурации.

Мой конфиг HAProxy:

frontend http
    bind example.com:80
    reqadd X-Forwarded-Proto:\ http
    mode http
    use_backend gitlab-backend if { hdr(host) -i git.example.com }

frontend https
    bind example.com:443 ssl crt /certs/cert.pem
    mode http
    use_backend gitlab-backend if { hdr(host) -i git.example.com }

backend gitlab-backend
    redirect scheme https if !{ ssl_fc }
    server gitlab1 media.lan.example.com:4001 ssl check verify none
    mode http

backend gitlab-ssh-backend
    redirect scheme https if !{ ssl_fc }
    mode tcp
    server gitlabssh1 media.lan.example.com:4002 check

frontend gitlab-ssh-frontend
    bind ssh.git.example.com:443 ssl crt /certs/cert.pem
    use_backend gitlab-ssh-backend
    mode tcp

0