nginx haproxy coredns nacos dns plugin 集成的玩法

nginx 新版本支持基于dns 的服务发现了,包含了基于A 或者AAAA 记录的,当然也支持基于SRV的,haproxy 实际很早就支持了

基于了server-template

参考玩法

简单说明:就是基于了nginx 以及haproxy 支持的解析能力,优势就比较明显了,我们可以通过nginx 或者haproxy 集成基于dns 的服务发现,这样就可以实现灵活的流量负载均衡了

haproxy 参考玩法

resolvers mydns
    nameserver dns1  xxxxxxxx:53
    accepted_payload_size 8192 # allow larger DNS payloads

frontend mydemo
  bind *:8080
  mode http
  option httplog
  log stdout format raw local0 info
  default_backend mydemo_backend

backend mydemo_backend
  mode http
  balance roundrobin
  server-template web 5 demo.go:8848 check resolvers mydns init-addr none

nginx 玩法

http {
    resolver 10.0.0.1 valid=300s ipv6=off;
    resolver_timeout 10s;
    upstream backend {
zone backend_zone 64k; server backend1.example.com resolve; server backend2.example.com resolve; } server { location / { proxy_pass http://backend; } } }

说明

目前srv模式支持实际上是有一些问题的,nacos 暂时没有直接的支持,如果需要可以通过一些约定玩法,进行格式处理,实现srv 的处理

目前以前调整的nacos coredns plugin 以及支持服务A记录多条支持,srv 暂时比较弱,待后边有时间了,调整支持下

参考资料

https://www.haproxy.com/blog/dns-service-discovery-haproxy

https://blog.nginx.org/blog/dynamic-dns-resolution-open-sourced-in-nginx

https://github.com/rongfengliang/coredns-nacos

posted on 2025-06-12 08:00  荣锋亮  阅读(17)  评论(0)    收藏  举报

导航