码迷,mamicode.com
首页 > 其他好文 > 详细

基于nginx proxy dns server

时间:2020-06-25 15:31:22      阅读:79      评论:0      收藏:0      [点我收藏+]

标签:contain   blog   code   pen   nta   user   RKE   测试   img   

原理实际行就是stream模式,因为nginx 支持基于stream 模式的lb同时支持(tcp.udp)以下是一个简单的配置

环境准备

  • docker-compose 文件
version: "3"
services: 
  lb: 
    image: openresty/openresty:alpine
    volumes:
    - "./nginx-lb.conf:/usr/local/openresty/nginx/conf/nginx.conf"
    - "./dns.log:/var/log/nginx/dns.log"
    ports:
    - "53:53/udp"
    - "53:53/tcp"
  • nginx 配置
worker_processes  1;
user root;  
events {
    worker_connections  1024;
}
stream {
     upstream dns_servers {
        server 114.114.114.114:53;
        server 8.8.8.8:53;
        server 8.8.8.4:53;
    }
    server {
        listen 53  udp;
        listen 53; #tcp
        proxy_pass dns_servers;
        error_log  /var/log/nginx/dns.log info;
    }
}
  • 启动
docker-compose up -d

测试

  • dig 测试
dig @127.0.0.1 baidu.com

效果
技术图片

 

 

说明

有点不太好的,默认的不支持health check,当然我们可以基于openresty 的stream 模块进行扩展,这样就可以更好的利用dns 做一些比较
强大的功能(比如coredns,consul)

参考资料

https://www.nginx.com/blog/load-balancing-dns-traffic-nginx-plus/
https://github.com/StalkR/dns-reverse-proxy

基于nginx proxy dns server

标签:contain   blog   code   pen   nta   user   RKE   测试   img   

原文地址:https://www.cnblogs.com/rongfengliang/p/13191689.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!