链接容器的docker nginx代理不工作
我试过这个: 这是: 然后从这里开始执行nginx配置: 我只是想告诉nginx代理端口链接容器的docker nginx代理不工作,docker,nginx,docker-compose,reverse-proxy,Docker,Nginx,Docker Compose,Reverse Proxy,我试过这个: 这是: 然后从这里开始执行nginx配置: 我只是想告诉nginx代理端口4000上的链接api服务。我不想向主机公开4000,因为将有多个服务在此端口上运行 这是我的docker compose.yml: 版本:“3” 服务: 应用程序编程接口: 构建:./api 图片:myapi:latest 容器名称:api api_nginx: 图片:nginx:latest 容器名称:api\u nginx 取决于: -原料药 链接: -原料药 端口: - "80:80" 环境:
4000
上的链接api服务。我不想向主机公开4000
,因为将有多个服务在此端口上运行
这是我的docker compose.yml
:
版本:“3”
服务:
应用程序编程接口:
构建:./api
图片:myapi:latest
容器名称:api
api_nginx:
图片:nginx:latest
容器名称:api\u nginx
取决于:
-原料药
链接:
-原料药
端口:
- "80:80"
环境:
-NGINX_服务器名称:localhost
卷数:
-/nginx:/etc/nginx/conf.d
...
...
我的nginx服务器是超小型的:
upstream backend {
server api;
}
server {
listen 80;
listen [::]:80;
server_name ${NGINX_SERVEE_NAME};
location / {
resolver 127.0.0.1;
proxy_pass http://backend/$1;
}
}
这是引发的错误:
...[error] 20#20: *1 no resolver defined to resolve api, client: 172.23.0.1, server: ${nginx_server_name}....
该页面显示一个502坏网关
发生了什么事?我关注过其他人的nginx配置,但它不起作用,我不知道。这两个服务都需要共享一个公共网络,并按其名称进行寻址。创建一个网络并将其添加到您的容器中,就像在@AndrewMorozko中一样,两个容器都位于
default
网络上;您无需手动声明任何内容即可使容器间网络正常工作(也不需要链接:
)。Docker文档中有更多细节。David是正确的,您似乎不需要它们。我可以发誓有一些问题需要手动创建一个网络,但似乎已经解决了。@AndrewMorozko如果没有链接,它仍然会给出相同的错误,我将尝试andrew发布的网络东西,即使你说我可能不需要它,我也会给出一个答案shot@DavidMaze不,在andrew发布的另一个问题中添加网桥网络时出现了相同的错误。它仍然在说1没有定义解析程序来解析api…
我认为这与我的nginx配置有关?这两个服务都需要共享一个公共网络,以通过它们的名称进行寻址。创建一个网络并将其添加到您的容器中,就像在@AndrewMorozko中一样,两个容器都位于default
网络上;您无需手动声明任何内容即可使容器间网络正常工作(也不需要链接:
)。Docker文档中有更多细节。David是正确的,您似乎不需要它们。我可以发誓有一些问题需要手动创建一个网络,但似乎已经解决了。@AndrewMorozko如果没有链接,它仍然会给出相同的错误,我将尝试andrew发布的网络东西,即使你说我可能不需要它,我也会给出一个答案shot@DavidMaze不,在andrew发布的另一个问题中添加网桥网络时出现了相同的错误。它仍然在说1没有定义解析程序来解析api…
我认为这与我的nginx配置有关?