gpt4 book ai didi

docker-compose gitlab 使用 Nginx 但 ssh 失败

转载 作者:行者123 更新时间:2023-12-02 19:49:42 24 4
gpt4 key购买 nike

我使用 docker-compose 在 GCP 上的同一台服务器上构建 Nginx 和 gitlab。
我正在使用 Cloudflare 管理我的 DNS,我有一个域名 gitlab.mydomain.com它与我的 GCP 静态 IP 绑定(bind)(例如,我的 ip 是 123.45.67.89 )。

所以想用这个域用Nginx访问我的gitlab,下面是我的docker-compose.yml文件:

version: '3.5'

services:
gitlab:
image: gitlab/gitlab-ce:latest
container_name: gitlab
restart: always
hostname: 'gitlab.mydomain.com'
privileged: true
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://gitlab.mydomain.com:7788'
gitlab_rails['gitlab_shell_ssh_port'] = 9453
ports:
- '7788:80'
- '9453:22'
volumes:
- /gitlab/data:/var/opt/gitlab
- /gitlab/logs:/var/log/gitlab
- /gitlab/config:/etc/gitlab
networks:
- net-proxy
nginx:
image: nginx
container_name: nginx
volumes:
- ./nginx.conf:/etc/nginx/conf.d/default.conf
ports:
- "80:80"
networks:
net-porxy:
external:
name: my-network

这是我的 Nginx.conf文件:
server {
listen 80;
server_name gitlab.mydomain.com;
proxy_connect_timeout 300;
proxy_send_timeout 300;
proxy_read_timeout 300;
send_timeout 300;
location ~ / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://123.45.67.89:7788;
}
}


我还在我的 gitlab.rb 中添加了这一行文件
external_url 'http://gitlab.mydomain.com'

我将我的 ssh 端口从 22 更改为 9453 端口,我可以通过我的域访问我的 gitlab 服务 gitlab.mydomain.com ,我也可以用http克隆我的git repo,但是当我想用ssh克隆时
git clone ssh://git@gitlab.mydomain.com:9453/myproject/myrepo.git ,它会一直显示操作超时。

但是如果我用 ip 替换我的 ssh 域:
git clone ssh://git@123.45.67.89:9453/myproject/myrepo.git
成功了!!!

我不确定这是否是因为我的域是 Nginx 的反向代理。如果我想用 Nginx 按域克隆我的 repo,请问我该怎么做。

最佳答案

As mentioned here ,NGiNX不做SSH转发,只做HTTP。

所以:

  • 要么你不NGiNX TCP proxying
  • GCP protocol forwarding

  • 例如: Port forwarding over SSH

    关于docker-compose gitlab 使用 Nginx 但 ssh 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61710027/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com