当前位置: 首页 > 知识库问答 >
问题:

通过nginx代理的Docker环境导致502坏网关

虞承泽
2023-03-14

我正在使用nginx-proxy将子域连接到不同的docker服务。自从最近的一次图像更新后,我再也无法连接到我的gitlab实例了。我不知道是nginx-proxy还是gitlab更新导致了这个问题。当我尝试连接到gitlab.mydomain.com时,会出现以下错误:

>

  • 浏览器:502坏网关。nginx/1.13.3
  • nginx-代理日志:

    nginx-proxy_1 nginx.1 2017/08/14 11:44:10[错误]39#39:*1672连接到上游时connect()失败(111:拒绝连接),客户端:178.2011.120.94,服务器:gitlab.mydomain.com,请求:“get/http/2.0”,上游:“https://172.18.0.2:443/,主机:”gitlab.mydomain.com“

    nginx-proxy_1 nginx.1 gitlab.mydomain.com 178.201.120.94-[14/aug/2017:11:44:10+0000]“get/http/2.0”502 575“-”mozilla/5.0(Windows NT 10.0;Win64;x64)AppleWebKit/537.36(KHTML,like Gecko)Chrome/60.0.3112.90 Safari/537.36“

    nginx-proxy_1 nginx.1 2017/08/14 11:44:11[错误]39#39:*1672连接到上游时连接()失败(111:拒绝连接),客户端:178.2011.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/”

    我的docker-compose文件:

    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"
    

    对此有什么想法吗?谢谢。
    编辑:来自docker inspect Gitlab的Networksettings:

        "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"
                }
            }
        }
    
  • 共有1个答案

    程祯
    2023-03-14

    这个设置对我很有效,也许你可以比较一下,找出问题所在:

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

    也许是这样:https://gitlab.com/gitlab-org/omnibus-gitlab/issues/1307

     类似资料:
    • 我的nginx.conf文件是这样的: 现在,在打开一些URL时,它抛出了502个坏网关,但对其他URL则没有。我犯的错误。日志为: 2019/01/10 23:53:39[错误]12139#12139:*5 recv()在从上游读取响应头时失败(104:由对等方重置连接),客户端:127.0。0.1,服务器:localhost,请求:“GET/wordpress/HTTP/2.0”,上游:fas

    • 我有一个基于php和nginx图像的web应用程序...一切都很好,直到我在PHP配置下设置了一个命令: docker撰写。yml 这是我的默认。形态 这是我的supervisord.conf nginx日志显示我: nginx|u 1 | 2018/10/02 00:42:36[错误]11#11:1 connect()在连接到上游时失败(111:连接被拒绝),客户端:172.23。0.1,服务器

    • 502网关错误。错误日志和nginx配置如下。有什么问题吗? [错误]7660#0:*10 connect()在连接到上游时失败(111:连接被拒绝),客户端:40.83。126.181,服务器:127.0。0.1,请求:“GET/HTTP/1.1”,上游:fastcgi://127.0.0.1:9000,主持人:“www.mysite.com” nginx。形态: vhost/home.conf

    • 我有joomla 3. x安装随着几个自定义组件和模块。我检查了错误日志,发现了下面给出的错误消息。 上游从上游读取响应标头时发送了无效标头,客户端:127.0。0.1,服务器:医院,请求:“GET/HTTP/1.1”,上游:fastcgi://127.0.0.1:9000" 如果有人能帮忙或提供解决问题的线索,我们将不胜感激。 谢谢你。

    • 好的,我正在本地运行一个应用程序,homestead.app:8000。我正在运行流浪,这是在我“流浪停止”为Nginx更改文档根然后流浪后才开始发生的。 Nginx正在将502坏网关返回到浏览器,我的测试域的错误日志声明如下: 2014/05/18 21:37:11[crit] 1368#0:*7连接()到unix:/var/run/php5-fpm.sock失败(2:没有这样的文件或目录),同

    • 我用Ired邮件和两个网站成功地运行了Ubuntu服务器20.04,其中一个是WordPress。 我想安装Nextcloud,为此我必须重新安装php fpm以生成php7。4-fpm。短袜在这之后,Nextcloud工作了,但是我的其他网站停止了工作,出现了错误“502坏网关”。 所以至少可以说,我很困惑! 我根据本文安装了Nextcloud并设置了启用的站点。符合说明的conf文件:http