opendevops-cn / opendevops

CODO是一款为用户提供企业多混合云、全球一站式DevOps、自动化运维、完全开源的云管理平台、自动化运维平台
http://www.opendevops.cn/
GNU General Public License v3.0
3.77k stars 1.02k forks source link

登录502 #61

Closed leon0204 closed 4 years ago

leon0204 commented 4 years ago

POST http://demo-init.opendevops.cn/api/accounts/login/ 502 (Bad Gateway)

leon0204 commented 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

Generated by NetworkManager

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

找不到哪儿出错了

Zhang21 commented 4 years ago

同登录502错误,我感觉是官方的api文档写的有点问题,导致部署的API网关服务异常。

Zhang21 commented 4 years ago

我对比了容器部署和单机部署,发现API LOGIN找ADMIN是8010端口,但是官方文档里面的ADMIN是80端口,所以找不到后端。改成8010后可以登录,但其它接口又有502,同样还是后端服务找不到的问题。感觉单机部署文档有点问题。

Zhang21 commented 4 years ago

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;
leon0204 commented 4 years ago

最终这边是用了集群部署ok了,单机文档有问题 ,bad

zerlee commented 3 years ago

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就好了。感谢