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
浙公网安备 33010602011771号