【nginx】转发请求connect() failed (111: Connection refused) while connecting to upstream

一、场景:小程序–>nginx(docker部署)–>转发到后端服务

下面是 nginx 的配置

upstream xian {
        server ip:端口;
}
server {
        listen 80; # 监听的端口,通常是80(HTTP)或443(HTTPS)
        server_name 127.0.0.1; # 该server块服务的域名
        
        location ~ ^(/[^/]*)?/actuator(/.*)?$ {
            return 403;
        }
 
        location / {
            # 配置代理行为
            proxy_pass http://127.0.0.1/xxxxxx; # 使用之前定义的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处理重定向
        }
    }


二、nxing转发服务时提示“ Connection refused”

使用过程中提示转发异常

2025/01/07 11:03:15 [error] 11#11: *57 connect() failed
 (111: Connection refused) while connecting to upstream, client: 113.87.236.59, 
server: 127.0.0.1, request: xxxxxxxxxxxxxxxxxx

在这里插入图片描述

三、解决方案

1、解决方案一
1、检查docker中的网络环境
docker-compose.yml 

2、修改网络环境
#host代表使用本机网络
network_mode: "host"

在这里插入图片描述

2、解决方案二

proxy_pass修改成公网ip

upstream xian {
        server ip:端口;
}
server {
        listen 80; # 监听的端口,通常是80(HTTP)或443(HTTPS)
        server_name 127.0.0.1; # 该server块服务的域名
        
        location ~ ^(/[^/]*)?/actuator(/.*)?$ {
            return 403;
        }
 
        location / {
            # 配置代理行为
            proxy_pass http://公网地址/xxxxxx; # 使用之前定义的upstream
			........
        }
    }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值