nginx转发请求Connection refused
一、场景:小程序–>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
........
}
}