我的节点网络服务器使用快速并侦听端口5500。 我的 dockerfile-compose 没有公开我的节点网络服务器(名为网络服务器(的任何端口,如下所示:
version: "3"
services:
webserver:
build: ./server
form:
build: ./ui
ports:
- "6800:80"
networks:
- backend // i let the backend network just for legacy but in fact webserver isn't in this networks
command: [nginx-debug, '-g', 'daemon off;']
networks:
后端:
我的 Nginx 反向代理如下:
/request {
proxy_pass http://webserver:5500/request
}
期望:由于两个服务之间缺少共享网络,Y 请求必须失败。 结果:请求成功。
我不明白为什么? 也许容器之间的默认网络使工作? 详细信息:当reverse_proxy重定向到错误的端口时,请求失败,但如果域名错误且端口良好,则请求成功,如下所示:
proxy_pass http://webver:5500/request>成功
我无法理解这里的Nginx/Docker流程。有人会向我们解释这里发生了什么?
较新版本的 Docker Compose 会自动创建 Docker 网络。 一旦该网络存在,Docker 就会提供自己的 DNS 系统,以便容器可以通过名称或网络别名相互访问;Compose 在 YAML 文件中以每个服务的名称注册每个服务,因此在这组容器中,webserver
和form
都是可解析的主机名。
(由此推论,您通常根本不需要在 YAML 文件中包含networks:
块,并且显式指定container_name:
或手动设置容器网络设置没有多大好处。