zoukankan      html  css  js  c++  java
  • nginx的域名解析

    1、​创建域名解析结构:

     ngx_resolver_create(ngx_conf_t *cf, ngx_str_t *names, ngx_uint_t n)

    这里面的names是dns服务器的地址,n是dns服务器地址的个数, 此函数调用后,会形成本机到dns服务器的upd连接结构,值得说明的是,如果names传入NULL,n传入0,也是可以获取到默认的dns地址的,所以一个经典的用法是创建一个http的配置块,在配置解析的时候指定dns服务器的地址,同时在配置结束后使用ngx_resolver_create(cf, NULL, 0),这样即使没有配置dns服务器的地址也能用默认的地址进行解析。

    2、域名解析流程:

    ngx_resolve_start 如果是ipv4地址,这里直接设置quick标记位,后面处理会直接调用回调函数。

    设置解析后的回调处理函数handler、超时时间、回调传递数据等。

    ngx_resolve_name进行域名解析,如果quick已经被置位则调用回掉函数,否则调用ngx_resolve_name_locked,里面先查询红黑树中的缓存,没有的话,建立红黑树结点,作为下一次查询的缓存,发送解析请求到服务器,有了请求结果后调用回掉函数处理请求。
     
    3、解析后的回调处理函数
    ctx->addrs,ctx->naddrs 为解析后的地址列表
    注意:在handler中都需要调用ngx_resolve_addr_done来标识查询结束,用来释放资源。
  • 相关阅读:
    QT 手式编译步骤
    Linux QT 连接 Sqlite数据库
    JDK_1.8的Windows和Linux环境下的下载与安装
    聚焦BPM弹窗
    SQL查重去重
    sql函数使用
    SQL游标
    转载:《TypeScript 中文入门教程》 2、枚举
    《TypeScript 中文入门教程》 1、基础数据类型
    转载:《TypeScript 中文入门教程》
  • 原文地址:https://www.cnblogs.com/bewolf/p/11213063.html
Copyright © 2011-2022 走看看