lua 中链接 Redis 使用域名报错 failed to connect: no resolver defined to resolve

最近一直在研究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 协议》,转载必须注明作者和本文链接
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 1

谢谢这位道友,解决了我的问题

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!