本教程作用

在搭建本地测试环境时,希望各项配置和线上服务器一直,如nginx,编译地址,反向代理配置等。
既然要和线上服务器配置一致,那必然会出现一个问题,就是域名映射。
要求大家都配置hosts,并不是一个好的方法,动用的人力和浪费的时间比较多,而且可能产生误操作。
基于这个需求,经过咨询一些同事和在网上查找,发现了代理DNS这个服务,它能使你自定义域名进行访问。如test.dev.com指向192.168.1.10(本地测试环境服务器),prod.dev.com指向192.168.1.10(预生产环境服务器),使得整个配置除了域名,和生产环境完全一致

本教程基于docker docker-compose搭建,各项配置都已经配置好,可直接启动使用

安装docker和docker-compose请看文章文档,已经写好脚本

其中docker/compose/dnsmasq/docker-compose.yml为启动文件,执行后,即可启动代理DNS。
其中重要的三个文件

  • /conf/dnsmasq/dnsmasq.conf 设置配置文件
resolv-file=/etc/resolv.dnsmasq
addn-hosts=/etc/hosts.dnsmasq
  • /conf/dnsmasq/resolv.dnsmasq 设置代理的DNS(用于访问外网)
nameserver 114.114.114.114
nameserver 8.8.8.8
  • /conf/dnsmasq/hosts.dnsmasq 配置自定义域名列表(类似hosts配置文件和写法)
192.168.1.10 dev.com

如果新增自定义域名,只需要再/conf/dnsmasq/hosts.dnsmasq文件中添加执行ip和自定义域名即可

最重要的一步,配置dns服务器
配置dns,才能使用自己的代理dns服务器

  • 自己电脑网络配置,配置完成后,即可访问dev.com,并且此域名指向192.168.1.10本地服务器

docker 3322域名解析_linux


docker 3322域名解析_docker_02

3箭头指向的ip地址为DNS服务器ip

  • 公司范围内配置共用dns,这也是大部分的应用场景,将dns服务器ip地址,配置到公共的路由器上,即可实现。

    至此,搭建完成并配置连接此路由器的电脑都可以使用配置的自定义域名

如搭建中遇到问题,可私信或留言一起讨论