502通过Jwilder的Nginx代理访问虚拟主机时出现错误的网关

我有一个运行在同一主机上的Nginx代理(Jwilder,默认configuration)和Gitlab实例。 git.myhost.com指向主机IP。 当使用下面docker-compose.yml启动Gitlab时,我在访问http://git.myhost.com时遇到了502 Bad Gateway

在nginx-proxy容器中生成的/etc/nginx/conf.d/default.conf也很好看:

 upstream git.myhost.com { # 2ab9168d-c69e-4725-8c20-31a194ad8d07 server 172.17.0.13 vhost; } server { server_name git.myhost.com; listen 80 ; access_log /var/log/nginx/access.log vhost; location / { proxy_pass http://git.myhost.com; } } 

我究竟做错了什么?

这里是Gitlab的docker-compose.yml

 gitlab-server: hostname: git.myhost.com expose: - "8100" ports: - 8101:22/tcp # - 8100:8100/tcp labels: io.rancher.sidekicks: gitlab-data environment: GITLAB_OMNIBUS_CONFIG: | external_url 'http://git.myhost.com' gitlab_rails['gitlab_shell_ssh_port'] = 8101 VIRTUAL_HOST: git.myhost.com VIRTUAL_PORT: 8100 image: gitlab/gitlab-ce:latest volumes_from: - gitlab-data gitlab-data: labels: io.rancher.container.start_once: 'true' entrypoint: - /bin/true hostname: gitdata image: gitlab/gitlab-ce:latest volumes: - /etc/gitlab:/etc/gitlab - /var/log/gitlab:/var/log/gitlab - /var/opt/gitlab:/var/opt/gitlab 

你应该改变nginx如下:

 upstream gitlab { # 2ab9168d-c69e-4725-8c20-31a194ad8d07 server 172.17.0.13:8100; } server { server_name git.myhost.com; listen 80 ; access_log /var/log/nginx/access.log vhost; location / { proxy_pass http://gitlab; } } 

172.17.0.13是gitlab docker容器的ip地址。