Nginx无法启动并且报错信息为duplicate upstream的解决方案

项目场景:

目前在做一个微服务项目,通过nginx来进行配置,功能如下:

  • 通过nginx的反向代理功能访问后台的网关资源
  • 通过nginx的静态服务器功能访问前端静态页面

问题描述:

无法启动nginx,在命令行里输入“nginx”以后,在任务管理器里找不到相关进程。error.log里的报错信息是:2023/09/03 21:25:13 [emerg] 18868#17712: duplicate upstream


原因分析:

  • 首先想到的是nginx的端口号可能被其他进程占用,因为默认端口号是80,使用命令netstat -ano | findstr “80”查看占用80端口号的进程,发现没有,因此这个原因。
  • 在网上查了一下,有说是Nginx 配置文件中出现了重复的 Upstream名称导致nginx报错的,因此我查看了报错信息中出现的配置文件,但是没有发现名字相同的upstream。
  • 不过,因为我有两个后台微服务:普通用户和自媒体用户,所以有两个配置文件,里面都定义了upstream。
  • 所以我就先删除了一个配置文件,发现nginx启动成功了。
  • 但是,这还是没有解决根本问题,因此那个被删除的配置文件是不可或缺的,因此还是要找到问题到底在哪儿。

解决方案:

检查了很多遍,两个配置文件都没有写错,在删除一个的情况下,nginx启动了,在nginx运行期间,我又重新写了一遍被删除的配置文件,再次通过cmd启动nginx,依然可以启动,检查任务管理器发现有两个nginx进程,再看error.log没有发现报错信息,通过浏览器,两个端口都可以访问。问题解决。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值