2017-08-14 1709 views
5

我正在使用nginx-proxy將子域連接到不同的docker服務。由於最後一次圖像更新之一,我無法再連接到我的gitlab實例。我不知道是否nginx-proxy或gitlab更新導致了這個問題。當我嘗試連接到gitlab.mydomain.com時,出現以下錯誤:通過nginx代理的Docker環境導致502 Bad Gateway

  1. 瀏覽器:502錯誤的網關。 nginx/1.13.3
  2. nginx-proxy日誌:

    nginx-proxy_1 | nginx.1 | 2017/08/14 11:44:10 [error] 39#39:* 1672連接()失敗(111:連接被拒絕),當連接到上游時,客戶端:178.201.120.94,服務器:gitlab.mydomain.com,請求: 「GET/HTTP/2.0」,上游:「https://172.18.0.2:443/」,主機:「gitlab.mydomain.com」

    nginx-proxy_1 | nginx.1 | 「GET/HTTP/2.0」502 575「 - 」「Mozilla/5.0(Windows NT 10.0; Win64; x64)gitlab.mydomain.com 178.201.120.94 - - [14/Aug/2017:11:44:10 +0000] AppleWebKit/537.36(KHTML,如Gecko)Chrome/60.0.3112.90 Safari/537.36「

    nginx-proxy_1 | nginx.1 | 2017/08/14 11:44:11 [error] 39#39:* 1672 connect()失敗(111:Connection refused)連接上游時,客戶端:178.201.120.94,服務器:gitlab.mydomain.com,請求: 「GET /favicon.ico HTTP/2.0」,上游: 「https://172.18.0.2:443/favicon.ico」,主機: 「gitlab.mydomain.com」,引薦: 「https://gitlab *** COM /」

我搬運工-撰寫文件:

version: '2' 

services: 
    nginx-proxy: 
    image: jwilder/nginx-proxy 
    ports: 
    - "80:80" 
    - "443:443" 
    volumes: 
    - /var/local/nginx/certs:/etc/nginx/certs 
    - /etc/letsencrypt:/etc/letsencrypt 
    - /var/run/docker.sock:/tmp/docker.sock:ro 

    gitlab: 
    image: gitlab/gitlab-ce:latest 
    ports: 
    - "2222:22" 
    hostname: 'gitlab.***.com' 
    expose: 
    - 443 
    - 22 
    - 80 
    - 25 
    environment: 
    - "VIRTUAL_HOST=gitlab.***.com,www.gitlab.***.com" 
    - "VIRTUAL_PORT=443" 
    - "VIRTUAL_PROTO=https" 
    volumes: 
    - "gitlab-config:/etc/gitlab" 
    - "gitlab-log:/var/log/gitlab" 
    - "gitlab-data:/var/opt/gitlab" 
    - "/etc/letsencrypt:/etc/letsencrypt" 

任何想法呢?謝謝。
編輯:從碼頭工人 NetworkSettings已檢查gitlab:

"NetworkSettings": { 
     "Bridge": "", 
     "SandboxID": "...", 
     "HairpinMode": false, 
     "LinkLocalIPv6Address": "", 
     "LinkLocalIPv6PrefixLen": 0, 
     "Ports": { 
      "22/tcp": [ 
       { 
        "HostIp": "0.0.0.0", 
        "HostPort": "2222" 
       } 
      ], 
      "25/tcp": null, 
      "443/tcp": null, 
      "80/tcp": null 
     }, 
     "SandboxKey": "/var/run/docker/netns/...", 
     "SecondaryIPAddresses": null, 
     "SecondaryIPv6Addresses": null, 
     "EndpointID": "", 
     "Gateway": "", 
     "GlobalIPv6Address": "", 
     "GlobalIPv6PrefixLen": 0, 
     "IPAddress": "", 
     "IPPrefixLen": 0, 
     "IPv6Gateway": "", 
     "MacAddress": "", 
     "Networks": { 
      "docker_default": { 
       "IPAMConfig": null, 
       "Links": null, 
       "Aliases": [ 
        "abb170528bcc", 
        "gitlab" 
       ], 
       "NetworkID": "...", 
       "EndpointID": "...", 
       "Gateway": "172.18.0.1", 
       "IPAddress": "172.18.0.2", 
       "IPPrefixLen": 16, 
       "IPv6Gateway": "", 
       "GlobalIPv6Address": "", 
       "GlobalIPv6PrefixLen": 0, 
       "MacAddress": "02:42:ac:12:00:02" 
      } 
     } 
    } 
+0

docker ps和docker檢查你的gitlab容器a nd查看它提取的IP是否正確? –

+0

在gitlab上的docker檢查給了我以下值:「網關」:「172.18.0.1」, 「IPAddress」:「172.18.0.2」,...對我來說看起來像一個錯誤? – caiuspb

+0

檢查您的案例中有多少網絡與gitlab關聯? –

回答

0

此設置爲我的作品,也許你可以比較一下,看看,什麼是錯的:

https://superuser.com/a/1242682/762931

也許是這個: https://gitlab.com/gitlab-org/omnibus-gitlab/issues/1307

+0

謝謝,我會試試看。如果有效,我會發布必要的修改並接受你的答案! – caiuspb

+0

gitlab docker機器上的/ etc/gitlab/trusted-certs中是否有任何文件?我覺得在SSL證書方面存在一些問題。 – caiuspb

+0

沒有,它們被放入卷中,然後直接放入容器中的/ etc/gitlab/ssl文件夾中 – metanerd

相關問題