设置非常简单。docker 容器正在运行并监听端口 2283。可以通过服务器浏览器访问 http://localhost:2283

我有以下 nginx 配置:

    server {
        listen 88;
        server_name _;

    location /{
            proxy_pass http://localhost:2283;
        }
}

然后可以通过 http://localhost:88 在同一台服务器上访问 docker 服务

但在同一网络的不同设备上,虽然可以访问,http://<server internal ip>:88我无法连接(超时)http://<server internal ip>:2283

防火墙 ufw 处于非活动状态,我可以确认 nginx 正在监听端口 88:

tcp        0      0 0.0.0.0:88           0.0.0.0:*               LISTEN     
tcp6       0      0 :::88                :::*                    LISTEN     

这是我第一次使用它作为反向代理。我现在很困惑。任何帮助我都感激不尽。

1

  • 我 99.99% 确定这是防火墙。


    – 


最佳答案
1

尝试将 NGINX 明确绑定到服务器的内部 IP 地址,如下所示(为了安全起见,我还在那里添加了 IPv6 监听指令):

server {
    listen <server_internal_ip>:88;
    listen [::]:88;  # For IPv6 support
    server_name _;

    location / {
        proxy_pass http://127.0.0.1:2283;
    }
}

除上述内容外,我还将检查 SELinux 模块(如果适用),看它是否通过运行以下命令限制 NGINX 建立传出连接:

sudo setsebool -P httpd_can_network_connect 1

另请检查您的iptables