nginx中resolver指令的作用是什么?
作用:配置域名服务器。用来把upstream中的服务器的域名解析为IP地址。
语法:
Syntax: resolver address ... [valid=time] [ipv4=on|off] [ipv6=on|off] [status_zone=zone];
Default: —
Context: http, server, location
示例:
当访问proxy_pass中的backend的时候,会使用这个DNS进行解析。
http { resolver DNS_SERVER_ADDRESS1 DNS_SERVER_ADDRESS2; server { listen 80; server_name example.com; location / { proxy_pass http://backend; } } }
配置resolver指令后,当Nginx需要解析代理请求(proxy_pass)或上游服务器的域名(server后面是域名)时,它将使用指定的DNS服务器进行解析。
比如,upstream中的server配置的是域名的情况,会使用域名进行解析
http { resolver DNS_SERVER_ADDRESS1 DNS_SERVER_ADDRESS2; upstream backend { server backend1.example.com; server backend2.example.com; } server { listen 80; server_name example.com; location / { proxy_pass http://backend; } } }
需要注意的是,resolver指令只需要配置一次,并且通常在http块中配置,以便在所有server块中共享。
另外,Nginx还支持在resolver指令中指定多个DNS服务器地址,以提供冗余和故障转移功能。