어디로 가야할지 잘 모르겠습니다. 나는 붙어있다. 로컬 가상 머신(호스트 이름 Git이라고 함)에서 실행 중인 git 저장소가 있고 다음을 통해 로컬로 액세스할 수 있습니다.[이메일 보호됨], 라우터가 모든 포트를 Git으로 전달하도록 할 수 있고 git@을 통해 git에 액세스할 수 있지만 도메인([이메일 보호됨]) 그리고 제가 무엇을 해야 할지 잘 모르겠습니다.
기본적으로 git 저장소는 가상 머신의 Docker 컨테이너에서 실행됩니다. 컨테이너가 호스트의 포트 22에 바인딩되고, 호스트 SSH가 포트 4242에 바인딩되고, 홈 라우터가 외부 포트 8022에서 포트 22의 Git으로 트래픽을 전달하도록 포트를 변경했습니다. 다시 말하지만 지금까지는 너무 좋았습니다.
그런 다음 AWS EC2 인스턴스에 호스팅된 에이전트로 이동하여 호스트 VM이 포트 4242에서 SSH를 실행하도록 포트를 다시 조정했습니다. 머신은 도메인을 기반으로 HTTP/HTTPS 트래픽을 전달하기 위해 간단한 HAProxy 설정을 실행하고 있습니다. HA 프록시를 통해 SSH 전달을 설정해 보았지만 이것이 분명히 불가능하다는 것을 알았습니다. 어쩌면 내 구성이 내가 여기서 해결하려는 문제를 다른 사람이 시각화하는 데 도움이 될 수도 있습니다...
global
log 127.0.0.1 local0 notice
maxconn 2000
user haproxy
group haproxy
defaults
log global
mode http
option ssl-hello-chk
option dontlognull
retries 3
option redispatch
timeout connect 5000
timeout client 50000
timeout server 50000
errorfile 400 /etc/haproxy/errors/400.http
errorfile 403 /etc/haproxy/errors/403.http
errorfile 408 /etc/haproxy/errors/408.http
errorfile 500 /etc/haproxy/errors/500.http
errorfile 502 /etc/haproxy/errors/502.http
errorfile 503 /etc/haproxy/errors/503.http
errorfile 504 /etc/haproxy/errors/504.http
frontend ssh
mode tcp
bind *:22 ssl crt /etc/ssl/mydomain.io/mydomain.io.pem
default_backend gitlab-ssh22
frontend mydomain.io-gitlab
bind *:80
acl docker-acl hdr_end(host) -i docker.mydomain.io
acl gitlab-acl hdr_end(host) -i gitlab.mydomain.io
acl test-acl hdr_end(host) -i test.mydomain.io
use_backend gitlab-bk80 if docker-acl
use_backend gitlab-bk80 if gitlab-acl
use_backend test-bk80 if test-acl
default_backend none-bk
frontend mydomain.io-gitlab-https
bind *:443 ssl alpn h2 strict-sni crt /etc/ssl/mydomain.io/mydomain.io.pem
stats uri /haproxy?stats
acl docker-acl hdr_end(host) -i docker.mydomain.io
acl gitlab-acl hdr_end(host) -i gitlab.mydomain.io
use_backend gitlab-bk443 if docker-acl
use_backend gitlab-bk443 if gitlab-acl
default_backend none-bk
# acl letsencrypt-acl path_beg /.well-known/acme-challenge/
# use_backend letsencrypt if letsencrypt-acl
frontend mydomain.io-docker
bind *:5000 ssl alpn h2 strict-sni crt /etc/ssl/mydomain.io/mydomain.io.pem
default_backend docker-bk5000
backend gitlab-ssh22
mode tcp
server gitlab22 24.x.x.x:8022 check
backend gitlab-bk80
server gitlab80 24.x.x.x:8080
backend gitlab-bk443
server gitlab443 24.x.x.x:8443 ssl verify none maxconn 1000
backend docker-bk5000
server docker5000 24.x.x.x:5000 ssl verify none maxconn 1000
backend test-bk80
server test 24.x.x.x:5001 maxconn 1000
체크아웃, 복제, 푸시 등 무엇이든 시도할 때마다 오류가 반환됩니다.
>git push -u origin master
kex_exchange_identification: Connection closed by remote host
Connection closed by 23.x.x.x port 22
fatal: Could not read from remote repository.