nginx - NGINX & Kestrel 502 响应(111:连接被拒绝)
问题描述
我在 docker 容器中设置了 NGINX,它正确地提供静态内容,所以那里没有问题。我将其配置为代理以指向我的 Mac 上的 Kestrel。Kestrel 在端口 5000 上响应很好(通过 Curl 检查),但由于某些奇怪的原因 NGINX 无法连接到它。
日志说:
15 connect() 在连接到上游时失败(111:连接被拒绝),客户端:172.17.0.1,服务器:[OMITTED],请求:“GET /api/values/5000 HTTP/1.1”,上游:“ http:// 127.0.0.1:5000/api/values/5000 "
我的 NGINX 配置:
location / {
proxy_pass http://dotnet;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
upstream dotnet {
zone dotnet 64k;
server 127.0.0.1:5000;
}
解决方案
由于 nginx 在您的容器中运行,因此 127.0.0.1 是容器本地的,而不是运行它的主机。
您需要更改 IP 地址以匹配容器视为主机的内容(请参见此处:https ://forums.docker.com/t/accessing-host-machine-from-within-docker-container/14248/4 )
另外,不要忘记打开防火墙上的端口:-)
推荐阅读
- python - 为什么 inspect() 认为 map 不是内置的?
- sql - 如何识别日期在哪个季度|Oracle SQL |
- python-3.x - 如何使用python中的python-docx模块在docx文件中添加eps图像
- sql - SQL:当一列有最大/计数子查询时,我可以编写多列查询吗?
- java - java内存泄漏的原因
- function - Tkinter - 使用功能更改标签
- wordpress - 我在我的wordpress网站上使用花哨的盒子,在那个标题中使用默认的h2标签,我怎么能把那个h2标签改成h1标签
- github - GitHub Copilot 命令不起作用并显示错误
- arrays - 如何在angularjs中添加/删除星号标记
- python - 计算一系列站点到最近站点的平均距离