记录一次nginx访问出现connect() failed (111: Connection refused) while connecting to upstream

nginx 出现这种情况存在很多种原因,我记录的只是针对我所在的场景下(请自行判断)

场景:

小程序发起请求--->nginx--->转发到后端web服务接口

nginx  ,web服务都是docker 容器部署,下面是nginx配置信息

upstream xian {
        server ip:端口;
}
server {
        listen 80; # 监听的端口,通常是80(HTTP)或443(HTTPS)
        server_name 你的域名; # 该server块服务的域名

        location ~ ^(/[^/]*)?/actuator(/.*)?$ {
            return 403;
        }

        location / {
            # 配置代理行为
            proxy_pass http://xian; # 使用之前定义的upstream
            proxy_set_header Host $host; # 向后端服务器传递Host头
            proxy_set_header X-Real-IP $remote_addr; # 向后端服务器传递真实客户端IP
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 同上,用于识别客户端的真实IP
            proxy_set_header X-Forwarded-Proto $scheme; # 如果使用SSL,传递协议信息给后端
            proxy_redirect off; # 关闭自动重定向处理,除非你需要Nginx处理重定向
        }
    }

产生 Connection refused情况是,当我将upstream 中的ip地址直接使用的是127.0.0.1:port,访问后端接口;

解决: 

将127.0.0.1修改为域名,即可解决Connection refused问题

解惑:

因为我的nginx和web服务都是使用docker compose部署,且是分开单独部署,并且没有指定网段,导致他们并不在一个网段中,同样在docker 部署时指定同一网段,理论也可以解决(并没有验证过,有兴趣的可以自行验证)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值