苍穹nginx upstream转发失效的问题
问题描述
问题概述:mc初始化过程中前端界面无响应,直接返回502
背景:容器使用客户方自建的容器平台,自建的云平台只能提供Igress域名对外暴漏的模式
问题定位过程
首先,分析上面502报错,可能出现的异常环节有下面这几种可能
静态资源加载的问题
nginx服务或者配置问题
服务本身的问题
服务暴漏方式的问题
明确上面可能出现异常点之后,我们逐一排查,顺藤摸瓜
静态资源的排查,可以通过url中输入一个静态资源的路径,返回一个正常图片则说明加载正常
nginx这个是重头戏,我们排查方法看后面
服务本身是否有问题,可以通过登陆容器中,curl本机服务地址的方式返回30x则说明访问到服务中,被服务重定向所以返回303。说明服务正常 (curl http://127.0.0.1:8090/mc/ --head)
服务暴漏方式是否异常,通过在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转发失效的问题
本文2024-09-23 01:13:52发表“云苍穹知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-cangqiong-144614.html