不太确定该去哪里。我被困住了。我有一个在本地虚拟机上运行的 git 存储库(称为主机名 Git),我可以通过以下方式在本地访问它:[电子邮件受保护],我可以让我的路由器将任何端口转发到 Git,并且我可以通过 git@ 访问 git,但我无法通过域访问它([电子邮件受保护])而且我不太确定我应该做什么。
基本上,git 存储库在虚拟机上的 Docker 容器中运行。我更改了端口,以便容器绑定到主机上的端口 22,主机 SSH 绑定到端口 4242,并且家庭路由器设置为将流量从外部端口 8022 转发到端口 22 上的 Git。同样,到目前为止,一切都很顺利。
然后,我转到托管在 AWS EC2 实例上的代理,并再次调整端口,以便主机虚拟机在端口 4242 上运行 SSH。该计算机正在运行简单的 HAProxy 设置,以根据域转发 HTTP/HTTPS 流量。我尝试通过 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.