美文网首页
kong常见问题

kong常见问题

作者: 鹏鹏他爸 | 来源:发表于2018-11-01 16:32 被阅读0次

1 通过kong api gateway访问,返回HTTP Error 500: Internal Server Error。

有可能是kong的服务器无法访问后端的服务。例如配置的是域名,但域名无法解析。
这种情况也很好诊断,在kong的服务器上ping一下后端服务,配置的域名就ping域名,配置的ip就ping ip。如果ip能访问,但域名不能,则要增加hosts配置了。
一般在kong的error.log中可以看到类似这样的错误:

2018/11/01 16:08:32 [error] 11114#0: *165 [lua] balancer.lua:806: execute(): [dns] dns lookup pool exceeded retries (1): failed to create a resolver: failed to set peer name: failed to parse host name "": no host. Tried: (short)ebpp.coscon.com:(na) - cache-miss
ebpp.coscon.com:33 - cache-miss/scheduled/try 1 error: failed to create a resolver: failed to set peer name: failed to parse host name "": no host/scheduled/try 2 error: failed to create a resolver: failed to set peer name: failed to parse host name "": no host/dns lookup pool exceeded retries (1): failed to create a resolver: failed to set peer name: failed to parse host name "": no host

2 HTTP Error 403: Forbidden

头的名称不对,必要有这些头名称
header_x_date='x-coscon-date'
header_content_MD5='x-coscon-Content-MD'
header_digest='x-coscon-digest'
header_authorization='x-coscon-authorization'

3 HTTP Error 406: Not Acceptable

可能http header加了accept 头,但没有加入服务器所返回的数据类型,比如json。
例如:
"accept": "text/html,application/xml"
这种情况,可以把application/json加入:
"accept": "application/json,text/html,application/xml"
也可以去掉accept头,不用指定。

4 konga具备快照功能。但将快照引入新的服务器后,注意要修改Route的地址,Route原来是使用快照备份出来的服务器,要改为引入的新服务器的地址。

5 如果log中有报错upstream timed out, 或者有504报错。Gateway超时。

2018/11/15 20:08:33 [error] 27141#0: *14223 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 10.134.14.28, server: kong, request: "GET /publicTracking/6103622780 HTTP/1.1", upstream: "http://172.22.255.10:3303/midApi/v1/public/tracking/6103622780", host: "172.22.224.165:8443"

注意检查一下,如果是使用Get方法,则body必须为空。如果body中有字符,就会引发KONG调用后端服务超时。

6 HTTP Status 404 – Not Found

检查路径配置是否与后台一致,包括大小写。
如果前面还有其他组件转发给KONG,要看看前端转发配置是否与路径匹配,大小写也要注意。
另外Route中的Method(Get / Post)是否与发出的请求一致。

7 由于目标计算机积极拒绝,无法连接

url中使用的端口不正确,例如https要用443或8443端口

8 <urlopen error [SSL: UNKNOWN_PROTOCOL] unknown protocol

检查协议是否配置成正确的https(小写,不能用大写)。另外注意端口,如果是https,默认应该用8443,而不是8000.

9 如果是通过nginx转发请求给kong,出现hmac验证不通过的情况,可能是nginx转发http请求版本默认是http/1.0, 而一般用户的使用的是http/1.1。也就是用户构造的请求request-line是1.1,并计算了验证的hmac字串,但nginx转发给kong时,request-line变成了1.0,造成request-line不正确。

10 502 bad gateway , 可以查看/usr/local/kong/logs下error.log

如果有
2019/06/25 19:26:01 [error] 22786#0: *81247552 upstream sent too big header while reading response header from upstream, client: 172.32.255.175, server: kong, request: "POST /service/cbs/basicData/getCustInfo.cbs HTTP/1.1", upstream: "http://172.32.225.69:8001/cbsServicePlatform/api/basicData/getCustInfo.cbs", host: "api.lines.coscoshipping.com"
说明返回的头太大。

相关文章

网友评论

      本文标题:kong常见问题

      本文链接:https://www.haomeiwen.com/subject/sapxxqtx.html