浏览 2.1k
之前写了篇文章用openresty实现了一个动态路由,虽然说是动态的,但是实际上还是需要将upstream在配置文件中写好,还是相当于静态的。
最近工作中有这方面的需求,upstream是完全动态,由客户端来指定,开始的时候有一些错误,最后通过resolver
指定dns服务来完成,具体流程如下。
nginx的配置如下:
当我发送这种请求:
报了如下错误:
很明显这个问题说明没有指定resolver
导致自定义upstreamwww.baidu.com
。
修改之后的nginx配置如下:
这下请求都正常200了:
resolver的语法如下:
可以配置多个dns服务,nginx会采用轮询的方式去访问dns服务,nginx会缓存dns对域名解析的结果,缓存的时间由valid
指定,ipv6用于显示开启或者关闭ipv6。
resolver_timeout
用于指定dns解析的超时时间。
http://nginx.org/en/docs/http/ngx_http_core_module.html#resolver
按点赞数排序
按时间排序