Closed leon0204 closed 4 years ago
报错日志: 2020/04/20 11:47:44 [error] 10955#10955: *62 [lua] access_check.lua:18: acc-->>>accounts, client: 172.16.0.123, server: gw.opendevops.cn, request: "POST /api/accounts/login/ HTTP/1.1", host: "gw.opendevops.cn", referrer: "http://demo-init.opendevops.cn/login”
2020/04/20 11:47:44 [error] 10955#10955: *62 [lua] upstream.lua:48: set(): real_uri-------->/login/, client: 172.16.0.123, server: gw.opendevops.cn, request: "POST /api/accounts/login/ HTTP/1.1", host: "gw.opendevops.cn", referrer: "http://demo-init.opendevops.cn/login”
2020/04/20 11:47:44 [error] 10955#10955: *62 connect() failed (111: Connection refused) while connecting to upstream, client: 172.16.0.123, server: gw.opendevops.cn, request: "POST /api/accounts/login/ HTTP/1.1", upstream: "http://172.16.0.123:8010/login/", host: "gw.opendevops.cn", referrer: "http://demo-init.opendevops.cn/login”
API网关 nginx.conf resolver 10.10.10.12; # 内部DNS 这里DNS 我设置的是 172.16.0.123 是我的华为云机器的内网ip 单机版
我的 /etc/dnsmasqhosts 172.16.0.123 demo-init.opendevops.cn 172.16.0.123 mg.opendevops.cn 172.16.0.123 task.opendevops.cn 172.16.0.123 gw.opendevops.cn 172.16.0.123 cmdb2.opendevops.cn 172.16.0.123 kerrigan.opendevops.cn 172.16.0.123 tools.opendevops.cn 172.16.0.123 cron.opendevops.cn 172.16.0.123 dns.opendevops.cn
[root@ecs-2883 ~]# cat /etc/resolv.conf
search openstacklocal nameserver 172.16.0.123 nameserver 100.125.135.29 nameserver 100.125.17.29 options single-request-reopen
pm2 list ; pm2 logs 没有报错
token_secret 设置都检查过了
[root@ecs-2883 ~]# # 进行所有服务进行检测,返回200则正常 [root@ecs-2883 ~]# curl -I -X GET -m 10 -o /dev/null -s -w %{http_code} http://mg.opendevops.cn/are_you_ok/ 200[root@ecs-2883 ~]# curl -I -X GET -m 10 -o /dev/null -s -w %{http_code} http://task.opendevops.cn/are_you_ok/ 200
[root@ecs-2883 ~]# curl -I -X GET -m 10 -o /dev/null -s -w %{http_code} http://cmdb2.opendevops.cn/are_you_ok/ 403[root@ecs-2883 ~]# curl -I -X GET -m 10 -o /dev/null -s -w %{http_code} http://kerrigan.opendevops.cn/are_you_ok/ 403[root@ecs-2883 ~]# curl -I -X GET -m 10 -o /dev/null -s -w %{http_code} http://cron.opendevops.cn/are_you_ok/ 403[root@ecs-2883 ~]# curl -I -X GET -m 10 -o /dev/null -s -w %{http_code} http://tools.opendevops.cn/are_you_ok/ 403
服务起了mg 和 task
找不到哪儿出错了
同登录502错误,我感觉是官方的api文档写的有点问题,导致部署的API网关服务异常。
我对比了容器部署和单机部署,发现API LOGIN找ADMIN是8010端口,但是官方文档里面的ADMIN是80端口,所以找不到后端。改成8010后可以登录,但其它接口又有502,同样还是后端服务找不到的问题。感觉单机部署文档有点问题。
是configs.lua
里面的rewrite_urls
里面的各个路由,它的各个路由的端口在nginx里面其实都只是启用了80,但这里面是80x0,所以不匹配。
所以需要你看各个服务在openresty里面配置的端口和域名是多少,然后修改下面的域名和端口配置。
--upstream匹配规则
44 gw_domain_name = 'gw.opendevops.cn'
45
46 rewrite_conf = {
47 [gw_domain_name] = {
48 rewrite_urls = {
49 {
50 uri = "/dns",
51 rewrite_upstream = "dns.opendevops.cn:8060"
52 },
53 {
54 uri = "/cmdb2",
55 rewrite_upstream = "cmdb2.opendevops.cn:8050"
56 },
57 {
58 uri = "/tools",
59 rewrite_upstream = "tools.opendevops.cn:8040"
60 },
61 {
62 uri = "/kerrigan",
63 rewrite_upstream = "kerrigan.opendevops.cn:8030"
64 },
65 {
66 uri = "/cmdb",
67 rewrite_upstream = "cmdb.opendevops.cn:8002"
68 },
69 {
70 uri = "/k8s",
71 rewrite_upstream = "k8s.opendevops.cn:8001"
72 },
73 {
74 uri = "/task",
75 rewrite_upstream = "task.opendevops.cn:8020"
76 },
77 {
78 uri = "/cron",
79 rewrite_upstream = "cron.opendevops.cn:9900"
80 },
81 {
82 uri = "/mg",
83 rewrite_upstream = "mg.opendevops.cn:8010"
84 },
85 {
86 uri = "/accounts",
87 rewrite_upstream = "mg.opendevops.cn:8010"
88 },
89 }
90 }
91 }
我的单击部署,安装文档配置,下列域名都是80端口。所以需要修改上面的配置。
grep 'server_name' *.conf -B 1
admin.conf- listen 80;
admin.conf: server_name mg.opendevops.cn;
--
cmdb.conf- listen 80;
cmdb.conf: server_name cmdb2.opendevops.cn;
--
cron.conf- listen 80;
cron.conf: server_name cron.opendevops.cn;
--
demo.conf- listen 80;
demo.conf: server_name demo-init.opendevops.cn;
--
demo.conf- listen 80 default;
demo.conf: server_name _;
--
gw.conf- listen 80;
gw.conf: server_name gw.opendevops.cn;
--
kerrigan.conf- listen 80;
kerrigan.conf: server_name kerrigan.opendevops.cn;
最终这边是用了集群部署ok了,单机文档有问题 ,bad
是
configs.lua
里面的rewrite_urls
里面的各个路由,它的各个路由的端口在nginx里面其实都只是启用了80,但这里面是80x0,所以不匹配。所以需要你看各个服务在openresty里面配置的端口和域名是多少,然后修改下面的域名和端口配置。
--upstream匹配规则 44 gw_domain_name = 'gw.opendevops.cn' 45 46 rewrite_conf = { 47 [gw_domain_name] = { 48 rewrite_urls = { 49 { 50 uri = "/dns", 51 rewrite_upstream = "dns.opendevops.cn:8060" 52 }, 53 { 54 uri = "/cmdb2", 55 rewrite_upstream = "cmdb2.opendevops.cn:8050" 56 }, 57 { 58 uri = "/tools", 59 rewrite_upstream = "tools.opendevops.cn:8040" 60 }, 61 { 62 uri = "/kerrigan", 63 rewrite_upstream = "kerrigan.opendevops.cn:8030" 64 }, 65 { 66 uri = "/cmdb", 67 rewrite_upstream = "cmdb.opendevops.cn:8002" 68 }, 69 { 70 uri = "/k8s", 71 rewrite_upstream = "k8s.opendevops.cn:8001" 72 }, 73 { 74 uri = "/task", 75 rewrite_upstream = "task.opendevops.cn:8020" 76 }, 77 { 78 uri = "/cron", 79 rewrite_upstream = "cron.opendevops.cn:9900" 80 }, 81 { 82 uri = "/mg", 83 rewrite_upstream = "mg.opendevops.cn:8010" 84 }, 85 { 86 uri = "/accounts", 87 rewrite_upstream = "mg.opendevops.cn:8010" 88 }, 89 } 90 } 91 }
我的单击部署,安装文档配置,下列域名都是80端口。所以需要修改上面的配置。
grep 'server_name' *.conf -B 1 admin.conf- listen 80; admin.conf: server_name mg.opendevops.cn; -- cmdb.conf- listen 80; cmdb.conf: server_name cmdb2.opendevops.cn; -- cron.conf- listen 80; cron.conf: server_name cron.opendevops.cn; -- demo.conf- listen 80; demo.conf: server_name demo-init.opendevops.cn; -- demo.conf- listen 80 default; demo.conf: server_name _; -- gw.conf- listen 80; gw.conf: server_name gw.opendevops.cn; -- kerrigan.conf- listen 80; kerrigan.conf: server_name kerrigan.opendevops.cn;
我也是502,根据你的办法把上面这个文件中的80x0全部替换成80就好了。感谢
POST http://demo-init.opendevops.cn/api/accounts/login/ 502 (Bad Gateway)