容器中的 nginx 正确反代其它容器的姿势是什么? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
nyxsonsleep
V2EX    问与答

容器中的 nginx 正确反代其它容器的姿势是什么?

  •  
  •   nyxsonsleep 353 天前 2044 次点击
    这是一个创建于 353 天前的主题,其中的信息可能已经有所发展或是发生改变。

    nginx 在 N 容器上,N 容器位于 docker networks 中的 Nnet 网络上。

    A 是一个服务,同样位于 Nnet 网络内,开放了 10086 端口,该服务默认情况下未独立配置 https 。

    1. 如果 nginx 想要反代 A ,应该指向哪个 ip ?如果两个容器不在同一个 docker networks 中有区别吗?
    2. 是不是只需要配置 nginx 的 tls ,加上反代就能保证访问反代到的 https 的 A 服务。
    17 条回复    2024-10-24 10:20:36 +08:00
    imdong
        1
    imdong  
       353 天前 via iPhone   1
    不使用 IP ,直接指向容器名。
    yinmin
        2
    yinmin  
       353 天前 via iPhone
    最稳定和安全的方式:N 容器和 A 容器都设置固定 ip 地址( Nnet 网络下的),nginx 指向 A 容器的固定 ip 。不用将 A 的 tcp 端口-p 映射出来。

    nginx 上部署 https 即可,A 容器直接 http 没必须 https 。
    yinmin
        3
    yinmin  
       353 天前 via iPhone
    我不喜欢在 nginx 里配置容器名,因为有些极端情况下,会发生容器名解析 ip 错误导致 nginx 不正常。在容器启动参数里加固定 ip 最为稳定。
    itechify
        4
    itechify  
    PRO
       353 天前

    指定容器名称,127.0.0.11 是 docker 的 dns ip
    esee
        5
    esee  
       353 天前
    nginx 反代 宿主机的 IP 不行么?
    daniel8642
        6
    daniel8642  
       353 天前
    都用 docker 了,要不试试 traefik 。
    单机部署的话,用 docker compose 配置容器,
    反代配置直接写在 docker compose 的 Label 配置里面。

    我之前是在主机上装的 nginx ,就是担心容器内网络转发配置太复杂混乱了。
    最近服务器快到期,准备重新倒腾一下。
    cookii
        7
    cookii  
       353 天前 via Android
    nginx 用 host 模式,直接指向暴露出来的 localhost:端口
    nyxsonsleep
        8
    nyxsonsleep  
    OP
       353 天前
    @esee #5 原因有 2 点:
    1. 我用了 NginxProxyManager ,反代宿主机 IP 结果只有配置 http 的情况下可以访问,否则 502 ,不知为什么。
    2. 宿主机 ip 应该只会放开 80 和 443 端口,其它端口不打算继续放开,目前仅测试功能。(实际情况有点复杂,但可以这么理解。
    nyxsonsleep
        9
    nyxsonsleep  
    OP
       353 天前
    @cookii #7 网安不允许。容器镜像是特制的,有检测工具。
    povsister
        10
    povsister  
       353 天前 via iPhone
    听说过 Ingres controller 吗
    nyxsonsleep
        11
    nyxsonsleep  
    OP
       353 天前
    @imdong #1 我能在容器中访问到对应的同 docker net 网络中其它容器的端口,但是在 nginx 和 caddy 中无法反代访问到。
    esee
        12
    esee  
       353 天前
    @nyxsonsleep 宿主机的 IP ,不是公网 IP ,宿主机的 IP 对外开放几个端口,都不影响你反代到宿主机的端口啊。都还没到防火墙呢。
    dusu
        13
    dusu  
       352 天前 via iPhone
    宿主机配个回环地址 例如 10.0.0.1
    SenLief
        14
    SenLief  
       352 天前
    bridge 模式,把所有的容器都添加到同一个网络中,npm 也要添加进去,然后用 容器名:端口 连接
    evada
        15
    evada  
       352 天前
    nginx 和 A 服务在一个 docker 网络不是可以直接访问容器名吗?
    server {
    listen 443 ssl;
    listen [::]:443;
    server_name 127.0.0.1;

    # security
    include nginxconfig.io/security.conf;
    # 指定 ssl 证书路径
    ssl_certificate xxx.com.cn_server.crt;
    # 指定私钥文件路径
    ssl_certificate_key xxx.com.cn_server.key;

    # logging
    access_log /var/log/nginx/access.log combined buffer=512k flush=1m;
    error_log /var/log/nginx/error.log warn;

    # reverse proxy
    location / {
    proxy_pass http://A:10086;
    proxy_set_header Host $host;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_redirect off;
    include nginxconfig.io/proxy.conf;
    }
    }
    jpyl0423
        16
    jpyl0423  
       352 天前
    nginx 容器和目标容器在同一个 docker network 上就行,nginx 直接指向目前容器名字
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     911 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 19:32 PVG 03:32 LAX 12:32 JFK 15:32
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86