Ubuntu 20.04上Nginx部署ASP.NET Core 5站点出现502 Bad Gateway求助
错误日志明确指向Nginx无法连接到上游的ASP.NET Core服务(端口5004),按以下优先级排查:
- 确认ASP.NET Core服务正常运行
执行命令ss -tulnp | grep 5004查看5004端口是否处于监听状态。如果无任何输出,说明服务没有成功启动:- 先检查运行环境:执行
dotnet --list-runtimes确认系统已安装ASP.NET Core 5.x版本运行时,未安装则先安装对应版本运行时 - 若配置了systemd管理站点服务,执行
systemctl status 你的站点服务名.service查看服务运行状态,若显示failed则执行journalctl -u 你的站点服务名.service --no-pager查看服务日志排查启动错误 - 也可直接手动启动站点排查问题:进入站点部署目录,执行
dotnet 你的站点程序集名称.dll(替换为实际的站点dll文件名),查看控制台输出是否有配置文件缺失、目录权限不足、依赖项缺失等启动异常
- 先检查运行环境:执行
- 确认服务监听地址匹配
若确认服务已启动但端口无监听,优先检查启动参数是否覆盖了代码中的UseUrls配置:- 检查systemd服务配置文件的启动命令是否添加了
--urls参数修改了监听端口或地址 - 可将代码中的监听配置修改为
webBuilder.UseUrls("http://127.0.0.1:5004"),避免localhost默认解析到IPv6地址::1导致监听不匹配
- 检查systemd服务配置文件的启动命令是否添加了
- 修正Nginx代理配置的地址解析问题
本地执行curl http://127.0.0.1:5004验证服务是否可正常访问,若可访问则将Nginx配置中的proxy_pass http://localhost:5004;修改为proxy_pass http://127.0.0.1:5004;,避免Nginx将localhost解析为IPv6地址,无法对接仅监听IPv4的ASP.NET Core服务。修改后执行nginx -s reload重载配置即可生效。
内容的提问来源于stack exchange,提问作者Primico
相关产品推荐
相关产品推荐

