vue/nodejs&;docker中的nginx:connect()在连接到上游时失败(111:连接被拒绝)

vue/nodejs&;docker中的nginx:connect()在连接到上游时失败(111:连接被拒绝),docker,nginx,docker-compose,devops,Docker,Nginx,Docker Compose,Devops,目录结构: myapp -- frontend ---- docker ------ frontend -------- nginx -------- nginx.conf docker-compose.yml docker-compose.yml: (移动到pastebin以避免恼人的“大部分代码”错误) default.conf: server { listen 80; server_name localhost; root /var/www/html;

目录结构:

myapp
-- frontend
---- docker
------ frontend
-------- nginx
-------- nginx.conf
docker-compose.yml
docker-compose.yml: (移动到pastebin以避免恼人的“大部分代码”错误)

default.conf:

server {
    listen 80;
    server_name localhost;
    root /var/www/html;

    location / {
        proxy_pass http://vue:8081;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

为什么连接到上游时连接失败(111:连接被拒绝)?

https://pastebin.com/THxMf0xM
行号23应指向端口80,即
端口:-“8081:80”

通过更改
代理通行证进行修复http://vue:8081;
代理\u通行证http://vue:8080;

注意8080端口

第二,重建前端服务

最后,从vue服务中删除
端口
选项


谢谢大家

当您的服务未在容器内运行时,会发生此错误,请检查服务日志,在这种情况下,vue服务运行良好。我可以在浏览器中访问vue服务。但是,当我在浏览器中访问nginx服务时,错误显示为upOK,另一件要检查的事情可能是vue是否在8081上运行,并且您是否在端口80上以http方式访问浏览器?正如我所说,vue应用程序在localhost:8081上运行良好。但在这种情况下,nginx无法基于DOCKER_FRONTEND_port变量将vue应用程序提供给给定的端口。我给出了一个带有3300的变量。查看您的代码,我可以看到您正在将8081映射到8080,这不应该是80,因为nginx正在侦听端口80吗?请详细说明为什么我应该将其映射到80而不是8080?vue cli默认在8080上为其应用程序提供服务,以匹配前端与后端的映射,这是您在下面的回答中采用的另一种方式