mirror of
https://gitee.com/iresty/apisix.git
synced 2024-12-02 03:58:02 +08:00
fix(DNS): prefer SRV in service discovery (#4992)
Fix #4986 Signed-off-by: spacewander <spacewanderlzx@gmail.com>
This commit is contained in:
parent
537e3866f6
commit
2f4564218c
@ -78,7 +78,7 @@ function _M.init_worker()
|
||||
hosts = {},
|
||||
resolvConf = {},
|
||||
nameservers = servers,
|
||||
order = {"last", "A", "AAAA", "SRV", "CNAME"},
|
||||
order = {"last", "SRV", "A", "AAAA", "CNAME"},
|
||||
}
|
||||
|
||||
local client, err = core.dns_client.new(opts)
|
||||
|
@ -45,3 +45,7 @@ split-weight.srv 86400 IN SRV 10 0 1980 C
|
||||
|
||||
priority.srv 86400 IN SRV 10 60 1979 A
|
||||
priority.srv 86400 IN SRV 20 60 1980 B
|
||||
|
||||
; a domain has both SRV & A records
|
||||
srv-a 86400 IN SRV 10 60 1980 A
|
||||
srv-a IN A 127.0.0.1
|
||||
|
4
t/discovery/dns/mix.t
vendored
4
t/discovery/dns/mix.t
vendored
@ -110,6 +110,9 @@ upstreams:
|
||||
end
|
||||
end
|
||||
|
||||
-- It is expected to have 5 DNS queries
|
||||
-- the first turn: one for global resolver & two for discovery (SRV, then A)
|
||||
-- the second turn: each one for both global resolver & discovery
|
||||
if i < 2 then
|
||||
ngx.sleep(1.1)
|
||||
end
|
||||
@ -125,3 +128,4 @@ connect to 127.0.0.1:1053
|
||||
connect to 127.0.0.1:1053
|
||||
connect to 127.0.0.1:1053
|
||||
connect to 127.0.0.1:1053
|
||||
connect to 127.0.0.1:1053
|
||||
|
14
t/discovery/dns/sanity.t
vendored
14
t/discovery/dns/sanity.t
vendored
@ -284,3 +284,17 @@ qr/proxy request to \S+/
|
||||
--- grep_error_log_out
|
||||
proxy request to 127.0.0.1:1979
|
||||
proxy request to 127.0.0.2:1980
|
||||
|
||||
|
||||
|
||||
=== TEST 14: prefer SRV than A
|
||||
--- apisix_yaml
|
||||
upstreams:
|
||||
- service_name: "srv-a.test.local"
|
||||
discovery_type: dns
|
||||
type: roundrobin
|
||||
id: 1
|
||||
--- error_log
|
||||
proxy request to 127.0.0.1:1980
|
||||
--- response_body
|
||||
hello world
|
||||
|
Loading…
Reference in New Issue
Block a user