OpenResty域名could not be resolved及dnsmasq配置


在本地開發中使用自己配置的域名例如:wuyachao.com配置在/etc/hostsping wuyachao.com顯示ip為127.0.0.1,在使用lua_resty_http時候,會報錯

failed to request: wuyachao.com could not be resolved (5: Operation refused)

OpenResty使用的是Nginx的resolver,不能讀取本地配置在/etc/hosts里面的域名nginx-resolver
(nginx走的是配置文件里面的resolver,並不走/etc/hosts下面的配置,所以可以自己建立一個小型的dns,使得nginx可以解析自己配置的私有域名)

本地開發可以直接寫ip地址,需要使用私有域名時,可以安裝dnsmasq。mac配置如下,

  • 安裝dnsmasq
brew install dnsmasq

cp /usr/local/opt/dnsmasq/dnsmasq.conf.example /usr/local/etc/dnsmasq.conf

sudo brew services start dnsmasq

  • 配置dnsmasq
    在復制的新的/usr/local/etc/dnsmasq.conf 文件中,將對應的配置信息的注釋取消掉,
# /etc/resolv.conf存放的是系統的dns,resolv-file表示根據系統dns列表讀取
resolv-file=/etc/resolv.conf  

# esolv.conf內的DNS尋址嚴格按照從上到下順序執行,直到成功為止
strict-order

# DNS解析hosts時對應的hosts文件,對應no-hosts,填寫本地讀取的/etc/hosts域名
addn-hosts=/etc/hosts
cache-size=1024  

# 多個IP用逗號分隔,192.168.x.x表示本機的ip地址,只有127.0.0.1的時候表示只有本機可以訪問。
# 通過這個設置就可以實現同一局域網內的設備,通過把網絡DNS設置為本機IP從而實現局域網范圍內的DNS泛解析(注:無效IP有可能導至服務無法啟動)
listen-address=192.168.x.x,127.0.0.1 

# 配置域名
address=/wuyachao.com/127.0.0.1 

  • 配置完之后不會直接生效,需要清理緩存
# 清理緩存
sudo killall -HUP mDNSResponder
# 啟動
sudo brew services start dnsmasq

# 重啟
sudo brew services restart dnsmasq

# 停止
sudo brew services stop dnsmasq

  • 最后在nginx.conf中的server或者http階段添加,就生效了
resolver 127.0.0.1;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM