开发者社区 > 云原生 > 中间件 > 正文

Tengine 中通过--hostsdir可以动态更新hosts文件 该怎么解决啊?

Tengine 中本机部署dnsmasq
通过指令resolver 127.0.0.1;劫持dns请求到本机dnsmasq,
本机dnsmasq默认优先从/etc/hosts查询host记录 通过--hostsdir可以动态更新hosts文件 该怎么解决啊?

展开
收起
小小鹿鹿鹿 2023-11-13 19:04:56 69 0
2 条回答
写回答
取消 提交回答
  • 如果你想在Tengine中本地部署Dnsmasq,并通过resolver指令将DNS请求劫持到本机的Dnsmasq服务,同时使用/etc/hosts文件进行主机记录查询,并且希望通过--hostsdir参数动态更新hosts文件,可以按照以下步骤进行操作:

    1. 安装和配置Dnsmasq:
      首先,确保在你的服务器上安装了Dnsmasq。你可以使用适合你操作系统的包管理器来安装它。例如,在Ubuntu上可以使用以下命令安装:
    sudo apt-get update
    sudo apt-get install dnsmasq
    
    1. 配置Dnsmasq:
      打开Dnsmasq的配置文件,通常位于/etc/dnsmasq.conf。在该文件中,你需要添加以下内容来告诉Dnsmasq使用本地hosts文件进行查询,并指定--hostsdir的路径。找到并修改以下行:
    listen-address=127.0.0.1
    hosts-file=/etc/hosts
    

    确保将listen-address=127.0.0.1修改为你的服务器的实际IP地址(如果需要)。这将告诉Dnsmasq监听特定的IP地址。

    1. 更新hosts文件:
      使用任何文本编辑器打开/etc/hosts文件,并添加你需要的主机记录。例如:
    127.0.0.1   example.com
    192.168.0.1  test.com
    

    这些示例记录将把example.com解析为127.0.0.1,将test.com解析为192.168.0.1。根据你的需求进行修改。

    1. 启动Dnsmasq服务:
      保存并关闭配置文件后,重启Dnsmasq服务以应用更改。使用适合你操作系统的命令来重启服务。例如,在Ubuntu上可以使用以下命令重启Dnsmasq:
    sudo systemctl restart dnsmasq
    
    1. Tengine中的DNS配置:
      在你的Tengine配置文件中,找到相关的DNS配置部分。通常位于/etc/nginx/nginx.conf或类似的文件中。在该部分中,添加以下内容来将DNS请求劫持到本机的Dnsmasq服务:
    resolver 127.0.0.1; # 将DNS请求劫持到本机的Dnsmasq服务
    
    2023-11-30 15:39:00
    赞同 展开评论 打赏
  • 可以到github提个issue,贴一下完整的conf
    上述要的配置 都没什么问题
    如果499是因为连接处理的问题 最好将499的access.log和error.log打出来

    可以找台机器 升级到3.1.0 灰度验证一下。此回答来自钉群Tengine 开源交流群。

    2023-11-14 23:20:03
    赞同 展开评论 打赏

为企业提供高效、稳定、易扩展的中间件产品。

相关电子书

更多
阿里七层流量入口Tengine硬件加速探索之路 立即下载
阿里Tengine直播最佳实践 立即下载
阿里Tengine网关最佳实践 立即下载