Closed hnzjCoder closed 6 years ago
tengine 是基于nginx-1.8.0, 所以只能使用nginx-upsync-1.8.* 分支,tengine 兼容更新有点略慢;
为什么不使用openresty 呢
现在所有环境用的都是tengine,有一些自研的管理工具也是基于tengine做的,改造起来比较麻烦。
另外,upsync模块可能出现的所有日志可以出一个文档说明一下吗,比如下面这种日志 [error] 18008#0: upsync_consul_parse_init: recv upstream "test0809-qa" error; http_status: 404
我的upstream配置如下 upstream test0809-qa {
server 127.0.0.1:80 down;
upsync **.com/v1/kv/upstreams/test0809-qa/ upsync_timeout=6m upsync_interval=500ms upsync_type=consul strong_dependency=off;
upsync_dump_path /usr/local/tengine/conf/servers/servers_test0809-qa.conf;
#include /home/appops/nginx/conf/servers/servers_test0809-qa.conf;
keepalive 100;
check interval=1000 rise=2 fall=2 timeout=1000 type=http default_down=false;
check_http_send "HEAD / HTTP/1.0\r\n\r\n";
#check_http_send "HEAD / HTTP/1.1\r\nConnection: keep-alive\r\n\r\n";
check_http_expect_alive http_2xx http_3xx http_4xx;
}
有些错误日志不太明白是什么意思
你好,还有一个问题,对upsync这个模块去consul获取key/value数据的过程有一些疑问;
我们测试环境有几个应用的nginx配置用了upsync+consul的方式,今天偶然发现nginx有很多error日志,都是在访问consul时带了Index参数, 2018/08/22 19:07:57 [error] 4172#0: *416575 upstream timed out (110: Connection timed out) while connecting to upstream, client: 172.24.80.83, server: consul-qa.dwbops.com, request: "GET /v1/kv/upstreams/dwd-connector-qa1/?recurse&index=1033664 HTTP/1.0", upstream: "http://172.24.64.15:8500/v1/kv/upstreams/dwd-connector-qa1/?recurse&index=1033664", host: "consul-qa.dwbops.com" 另外在access.log中看到不带index的请求都是正常返回的。在这种情况下应用域名访问正常,修改consul的数据后本地dump的文件可以正常更新,访问web也有正常变化,不了解这个带有index参数的error日志是做了什么,有什么影响
下面是测试结果, 1、请求参数不加index,获取datav-qa这个应用下的所有后端主机可以正常返回 [root@qa-common001 sites-enable]# curl -i 'http://consul-qa.dwbops.com/v1/kv/upstreams/datav-qa/?keys&seperator=/&dc=aliyun-qa&token=' HTTP/1.1 200 OK Server: Tengine Date: Wed, 22 Aug 2018 11:27:21 GMT Content-Type: application/json Content-Length: 64 Connection: keep-alive X-Consul-Index: 1049276 X-Consul-Knownleader: true X-Consul-Lastcontact: 0 ["upstreams/datav-qa/","upstreams/datav-qa/172.24.64.222:14280"] 2、请求参数加上index索引后,就一直没有返回,最后报504错误。 [root@qa-common001 sites-enable]# curl -iv 'http://172.24.64.151:8500/v1/kv/upstreams/dwd-connector-qa1/?recurse&index=1033664'
GET /v1/kv/upstreams/dwd-connector-qa1/?recurse&index=1033664 HTTP/1.1 User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.27.1 zlib/1.2.3 libidn/1.18 libssh2/1.4.2 Host: 172.24.64.151:8500 Accept: /
已经找到问题了,是因为很多后端应用不支持HEAD请求来做健康检查,大量失败导致健康检查模块出现问题导致的。
这个问题怎么解决?
master分支可以和tengine-2.2.2一起用吗,还是只能用nginx-upsync-1.8.*分支的