kex_exchange_identificationエラー:リバースプロキシの背後にあるGit

kex_exchange_identificationエラー:リバースプロキシの背後にあるGit

どこに行けばいいのか分からない。ついています。ローカル仮想マシン(ホスト名Gitと呼ばれる)で実行されているgitリポジトリがあり、次の方法でローカルにアクセスできます。[Eメール保護]、ルーターがすべてのポートをGitに転送できるようにすることができ、git@経由でgitにアクセスできますが、ドメイン([Eメール保護])そして私が何をすべきかわかりません。

デフォルトでは、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.

ベストアンサー1

おすすめ記事