nginx resolve dns 动态负载均衡简单说明

nginx 新版本支持了dns 动态负载均衡,需要进行dns 配置以及server resolve 的配置

参考使用

  • 配置
user  nginx;
worker_processes  auto;

error_log  /var/log/nginx/error.log warn;
events {
    worker_connections 1024;
}

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format main '$remote_addr - $remote_user [$time_local] "$request" '
                    '$status $body_bytes_sent "$http_referer" '
                    '"$http_user_agent" "$http_x_forwarded_for"';
    access_log  /var/log/nginx/access.log  main;
    sendfile        on;
    tcp_nopush      on;

    keepalive_timeout  65;
    gzip on;
    gzip_types text/plain application/json application/javascript text/css application/xml;
    upstream backend {
        resolver 10.10.17.10 valid=10s ipv6=off;
        resolver_timeout 10s;
        zone backend_zone 64k;
        server demo.go resolve;
    }
    server {
        listen 80;
        location / {
            proxy_pass http://backend;
        }
    }
}
  • 说明 如果server配置resolve 必须使用zone 配置共享区,否则会有异常信息,同时推荐配置resolver 的valid 以及resolver_timeout

说明

比如我们集成coredns 以及nacos 等,实现灵活的dns 处理,我们通过nacos 进行灵活的流量切换处理,注意valid 的时间还是比较重要的,毕竟目前社区版的nginx 是缺少主动健康检查的,通过valid 确保新纪录尽快生效,当然目前版本的也是支持基于srv 格式的处理的

参考资料

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

https://nginx.org/en/docs/http/ngx_http_core_module.html#resolver

https://nginx.org/en/docs/http/ngx_http_upstream_module.html#resolver

https://nginx.org/en/docs/http/ngx_http_upstream_module.html#server

https://nginx.org/2024.html

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

导航