我在linux服务器上将不同的应用程序作为docker容器运行。我可以使用SSL很好地访问docker容器。我正在使用的反向代理traefik
配置为代理子目录而不是子域。
这些是我的容器:
应用程序A -可通过https://abc.xyz/a
应用B -可通过https://abc.xyz/b
从我的浏览器访问它们时,两个应用程序都已启动并且正在运行并且可以正常工作。
现在,我需要将应用B 嵌入到应用A 中。我知道我只能使用容器的内部IP(因为它们位于同一网络上),但是 Application A 和本地浏览器都必须可以访问嵌入式应用-因此,我需要使用面向公众的IP / URL。
现在的问题是我根本无法从应用程序A 访问https://abc.xyz/b
。以下所有命令均在 Application A Docker容器内执行。
Ping正在工作:
$ ping abc.xyz
64 bytes from 150.150.150.150: seq=0 ttl=64 time=0.204 ms
因此DNS正在正常工作。
但是wget
显示:
$ wget https://abc.xyz/b
Connecting to abc.xyz (150.150.150.150)
(Nothing happens)
我根本无法弄清楚问题出在哪里。是traefik
中的内容,还是docker的限制?
答案 0 :(得分:0)
经过更多研究,我发现它与docker
或traefik
根本无关。主机Linux启用了防火墙(ufw
),由于配置不正确,该防火墙阻止了来自Docker容器的请求。
我现在允许从容器访问它并且可以正常工作。