Не могу SSH войти в GitLab, когда он доступен через HAProxy

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

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

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

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

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

Как мне этого добиться? Чтобы иметь возможность 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 ответов

Другие вопросы по тегам