苍穹nginx upstream转发失效的问题

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

苍穹nginx upstream转发失效的问题


问题描述

问题概述:mc初始化过程中前端界面无响应,直接返回502


背景:容器使用客户方自建的容器平台,自建的云平台只能提供Igress域名对外暴漏的模式


问题定位过程

首先,分析上面502报错,可能出现的异常环节有下面这几种可能

  1. 静态资源加载的问题

  2. nginx服务或者配置问题

  3. 服务本身的问题

  4. 服务暴漏方式的问题


明确上面可能出现异常点之后,我们逐一排查,顺藤摸瓜

  1. 静态资源的排查,可以通过url中输入一个静态资源的路径,返回一个正常图片则说明加载正常

  2. nginx这个是重头戏,我们排查方法看后面

  3. 服务本身是否有问题,可以通过登陆容器中,curl本机服务地址的方式返回30x则说明访问到服务中,被服务重定向所以返回303。说明服务正常 (curl http://127.0.0.1:8090/mc/ --head)

  4. 服务暴漏方式是否异常,通过在nginx中curl的方式如何和上面curl的返回一样则说明正常


nginx是否正常,通过curl nginx的地址发现返回40x,至此定位是nginx软件本身的问题。通过查看ngnix日志报错如下


根据上面报错预估为upstream模块失效,尝试config中所有proxy_pass直接抛给具体域名地址,而不使用upstream模块。最终问题解决


修改前

此时nginx内部的调用顺序为 3步调用

1、proxy_pass ===> 2、http://next-mc  ===>3、upstream中的next-mc具体域名



upstream配置文件中的域名如下

[root@cnsz91vl03171 conf.d]# cat upstream.conf

upstream next-ierp {

    server mservicetest-cmhk-fms-kdebg-di-fms-kdebg-mserice.apps.hk-ocp1.sit.cmhk.com:80;

    check interval=3000 rise=2 fall=5 timeout=1000 type=tcp port=30002;   

}

upstream next-mc {

    server  kingdeetest-cmhk-fms-kdebg-di-fms-kdebg-mc.apps.hk-ocp1.sit.cmhk.com:80;

}

upstream next-fileserver {

    server 127.0.0.1:30003;

    check interval=3000 rise=2 fall=5 timeout=1000 type=tcp port=30003;

}

upstream mqserver {   

    server 100.109.0.179:15672;

}

upstream next-mdd {

    server 127.0.0.1:8080;

    check interval=3000 rise=2 fall=5 timeout=1000 type=tcp port=8888;

}


修改后(注意两次两处配置都需要修改)

此时nginx内部的调用顺序为 2步调用

1、proxy_pass ===> 2具体域名



  • 最终建议


容器服务对外提供的访问方式是域名,则建议配置文件proxy_pass后面直接加域名

容器服务对外提供的访问方式是IP,建议配置文件proxy_pass后面直接upstream模块名称













苍穹nginx upstream转发失效的问题

问题描述问题概述:mc初始化过程中前端界面无响应,直接返回502背景:容器使用客户方自建的容器平台,自建的云平台只能提供Igress域名对外...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息