自上次更新后,无法安全连接到自托管的 Discourse

我也在自托管实例上看到了这个问题,这是在最近重建之后出现的。除了重建本身,配置没有任何变化。我可以通过 SSH 访问服务器,这是 ./launcher logs app 的输出。


run-parts: executing /etc/runit/1.d/00-ensure-links
run-parts: executing /etc/runit/1.d/00-fix-var-logs
run-parts: executing /etc/runit/1.d/01-cleanup-web-pids
run-parts: executing /etc/runit/1.d/anacron
run-parts: executing /etc/runit/1.d/cleanup-pids
Cleaning stale PID files
run-parts: executing /etc/runit/1.d/copy-env
run-parts: executing /etc/runit/1.d/install-ssl
Started runsvdir, PID is 45
ok: run: redis: (pid 55) 0s
supervisor pid: 53 unicorn pid: 76

Docker 容器正在运行,我的 docker ps 输出证明了这一点。(容器 ID 已隐藏)

local_discourse/app “/sbin/boot” 16 minutes ago Up 16 minutes 0.0.0.0:80-\u003e80/tcp, [::]:80-\u003e80/tcp, 0.0.0.0:443-\u003e443/tcp, [::]:443-\u003e443/tcp, 0.0.0.0:5432-\u003e5432/tcp, [::]:5432-\u003e5432/tcp app

一个重要的注意事项是,我们不使用 openSSL 来获取证书,因为需要一个特定的颁发者。但是,此证书没有更改,并且在重建之前一直正常工作。

看起来 nginx 期望的 IP(本地 IP)与分配给容器的 IP 之间存在不匹配。看起来容器可能在桥接模式下运行?这是容器的网络设置。

“Labels”: {
    “org.opencontainers.image.created”: “2025-07-25T21:40:36+00:00”
},
“NetworkSettings”: {
    “Bridge”: “”,
    “SandboxID”: “[REDACTED]”,
    “SandboxKey”: “[REDACTED]”,
    “Ports”: {
        “443/tcp”: [
            {
                “HostIp”: “0.0.0.0”,
                “HostPort”: “443”
            },
            {
                “HostIp”: “::”,
                “HostPort”: “443”
            }
        ],
        “5432/tcp”: [
            {
                “HostIp”: “0.0.0.0”,
                “HostPort”: “5432”
            },
            {
                “HostIp”: “::”,
                “HostPort”: “5432”
            }
        ],
        “80/tcp”: [
            {
                “HostIp”: “0.0.0.0”,
                “HostPort”: “80”
            },
            {
                “HostIp”: “::”,
                “HostPort”: “80”
            }
        ]
    },
    “HairpinMode”: false,
    “LinkLocalIPv6Address”: “”,
    “LinkLocalIPv6PrefixLen”: 0,
    “SecondaryIPAddresses”: null,
    “SecondaryIPv6Addresses”: null,
    “EndpointID”: “[REDACTED]”,
    “Gateway”: “172.17.0.1”,
    “GlobalIPv6Address”: “”,
    “GlobalIPv6PrefixLen”: 0,
    “IPAddress”: “172.17.0.2”,
    “IPPrefixLen”: 16,
    “IPv6Gateway”: “”,
    “MacAddress”: “[REDACTED]”,
    “Networks”: {
        “bridge”: {
            “IPAMConfig”: null,
            “Links”: null,
            “Aliases”: null,
            “MacAddress”: “[REDACTED]”,
            “DriverOpts”: null,
            “GwPriority”: 0,
            “NetworkID”: “[REDACTED]”,
            “EndpointID”: “[REDACTED]”,
            “Gateway”: “172.17.0.1”,
            “IPAddress”: “172.17.0.2”,
            “IPPrefixLen”: 16,
            “IPv6Gateway”: “”,
            “GlobalIPv6Address”: “”,
            “GlobalIPv6PrefixLen”: 0,
            “DNSNames”: null
        }
    }
}