lua 中連結 Redis 使用域名報錯 failed to connect: no resolver defined to resolve

蠟筆小新發表於2019-04-22

最近一直在研究openResty,使用過程中在用lua指令碼連線redis的時候,使用了阿里雲的雲redis,大家都知道的阿里雲的雲redis,連線地址是一個域名,這個時候報錯 failed to connect: no resolver defined to resolve,先去檢查了一下redis的白名單,發現內網的ecsIP是在白名單的,然後使用php測試連線都是正常的,後面去網上查詢資料,終於在牆外找到了答案:
nginx 自己的 resolver 目前尚不支援本地的 /etc/hosts 檔案(注意,這與 DNS 服務本身無關),而 ngx_lua 的 cosocket 也使用的是 nginx 自己的非阻塞的 DNS resolver 元件。所以我們 只需要在nginx.conf 中加一行:

    resolver 8.8.8.8; 
備註:這裡我使用的是Goole 公開的 DNS 解析器,大家可以按照需求去配置!囉嗦一大堆,程式碼一行,祝大家晚安
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章