listen的解析:

ngx_http_core_listen方法:

- 调用ngx_parse_url解析url。

- 初始化ngx_http_listen_opt_t结构lsopt

- 调用ngx_sock_ntop初始化lsopt.addr为点分十进制IP。

- 处理listen的其他配置参数,如:backlog= ,rcvbuf=, sndbuf=, ssl, so_keepalive= 等等。

- 调用ngx_http_add_listen添加到队列。

ngx_http_add_listen方法在ngx_http.c#1143

- 如果ports为NULL(不为空,就是说已经解析了一个listern),则为ngx_http_core_module的ngx_http_core_main_conf_t.ports分配ngx_http_conf_port_t

- 获取listern 的端口,赋值给p。

-  查找prots中family和port相同的,如果找到,说明两个listern监听相同的端口,是相同的协议,就不需要再分配 ngx_http_conf_port_t了。调用ngx_http_add_addresses添加到相同port的port的addr数组。

-  没找到(说明还没有解析监听过该端口),调用ngx_http_add_address把port赋值,调用ngx_array_push添加到ports数组。

ngx_http_add_addresses函数:

- 查找port->addrs数组是否已经添加了该IP。若是,调用ngx_http_add_server把对应的ngx_http_core_srv_conf_t配置添加到ngx_http_conf_addr_t的servers数组中。

- 若没找到该IP,调用ngx_http_add_address把IP初始化到ngx_http_conf_addr_t结构,添加到port的addrs数组中。

总结:监听的端口地址信息以数组的形式村到了ngx_http_core_module模块的ngx_http_core_main_conf_t结构变量中。

linux ngx listen的解析相关推荐

  1. linux网络编程函数解析之——setsockopt / getsockopt用法

    linux网络编程函数解析之--setsockopt / getsockopt用法 工程中无线传输方面的东西用到了setsockopt(),getsockopt().网上相关博客很多,而且类似,原文出 ...

  2. linux项目课程设计,LINUX课程设计项目需求解析.doc

    LINUX课程设计项目需求解析 1引言 目前大学生就业形势越来越严峻,为了给学生增加就业砝码,学校为每个学生提供一个展示自我的平台,在学校web服务器上开通注册通道,让每个学生都可以拥有自己的个人网站 ...

  3. jq输出文本_如何用 Linux 命令行工具解析和格式化输出 JSON | Linux 中国

    我们将使用 Linux 上的命令行工具解析并格式化打印 JSON.它对于在 shell 脚本中处理大型 JSON 数据或在 shell 脚本中处理 JSON 数据非常有用.-- Ostechnix J ...

  4. Linux入门之inode解析及管道重定向

    Linux入门之inode解析及管道重定向 inode 简介: 当磁盘分区格式化后会根据分区格式.大小等信息来指定分区分配多少个inode表,每个inode表都会有一个在当前分区中唯一的编号,可能有一 ...

  5. Linux文件权限的解析

    Linux文件权限的解析 LINUX当前目录下可以用ls -l 命令来查看当前目录下所有文件夹和文件的权限. 用ls命令得到的权限表示格式类似这样:-rwxr-xr-x 下面解析一下格式所表示的意思. ...

  6. linux暂时不能域名解析,Kali Linux中暂时不能解析域名

    Kali Linux中暂时不能解析域名 环境:kali linux 这个问题是再用apt install命令安装软件时发现的 用ping www.xxxxxxxx.com 再次确认无法解析域名 参考: ...

  7. linux服务器无法解析域名解决办法,Linux服务器内部无法解析域名

    Linux服务器内部无法解析域名 问题现象 Linux 服务器内部无法正常解析域名. 问题原因 可能的原因包括: DNS 设置问题 防火墙策略问题 NSCD 服务问题 处理办法 可以依次进行如下检查: ...

  8. Linux的DNS正向解析和转发配置

    Linux的DNS正向解析和转发配置 DNS是Domain Name System(域名系统)的简称,用来解析域名和ip的对应关系.关于域名的定义以及解析原理大家都知道. DNS搭建非常简单,所需软件 ...

  9. linux dns无法解析,Linux服务器内部无法解析域名

    Linux服务器内部无法解析域名 问题现象 Linux 服务器内部无法正常解析域名. 问题原因 可能的原因包括: DNS 设置问题 防火墙策略问题 NSCD 服务问题 处理办法 可以依次进行如下检查: ...

最新文章

  1. 如何在柱状图中点连线_练瑜伽,如何放松僵硬紧张的髂腰肌?
  2. 【转】#ifndef作用
  3. ssl初一组周六模拟赛【2018.3.24】
  4. Ibatis XML 配置文件注释引起错误及解决方案
  5. xcode8 崩溃问题
  6. java之Stack详细介绍
  7. maven 插件深入了解
  8. handler 和 intent用法
  9. 专业视频压制神器下载——解决会声会影、PR、AE处理视频后过大的问题(三款工具)专业视频压制软件
  10. “交通·未来”第22期:城市轨道交通管理与控制优化:相关问题及方法
  11. 为什么相敬如宾是对的?
  12. STM32 DFU下载与 DFU生成工具
  13. SIM900A GPRS GSM 基础知识
  14. RabbitMQ的学习笔记
  15. Oracle入门精读14_Lsnrctl命令
  16. 传奇开外网需要映射那几个端口
  17. Linux查看流量情况以及关闭流量端口
  18. 锅炉如何实现物联网云平台方案
  19. 《小朱家的爬虫》第二课------- 编写第一个网络爬虫
  20. 使用python绘制奥运五环

热门文章

  1. 关于getCurrentUrl的获取问题
  2. Linux高性能server编程——高级I/O函数
  3. mysql-sql语句
  4. 关于一个Panel上鼠标不及时响应MouseLeave事件
  5. CodeForces - 1430E String Reversal(线段树+模拟)
  6. CodeForces - 1196F K-th Path(最短路+思维)好题
  7. 牛客 - 牛牛的Link Power II(线段树)
  8. 数据模型与决策_数据模型与决策复习资料拿走不用客气
  9. 1.OD-破解MTS DashBoard
  10. C++线程池原理及创建(转)