Nginx监听端口管理
2015-08-04 15:47
555 查看
Nginx监听端口管理
每监听一个TCP端口,都将使用一个独立的ngx_http_conf_port_t结构体表示。ngx_http_conf_port_t
typedef struct { //socket地址家族 ngx_int_t family; //监听端口 in_port_t port; //监听端口下对应着的所有ngx_http_conf_addr_t地址 ngx_array_t addrs; } ngx_http_conf_port_t;
这个ngx_http_conf_port_t结构体保存在ngx_http_core_main_conf_t结构体中:
typedef struct { //存放该http{}配置块下监听的所有ngx_http_port_t端口 ngx_array_t *port; ... } ngx_http_core_main_conf_t;
由于一个http{}中可能监听多个端口,所以这里是动态数组的形式存储port。对于一个port,可能会监听多个IP地址,这些元素都保存在ngx_http_conf_port_t结构体中的addrs成员中。每个元素都是如下结构:
ngx_http_conf_addr_t
typedef struct { // 监听套接字的各种属性 ngx_http_listen_opt_t opt; // 以下三个散列表用于确定到底使用哪个server{}虚拟主机下的配置来处理端口上的新连接 ngx_hash_t hash; ngx_hash_wildcard_t *wc_head; ngx_hash_wildcard_t *wc_tail; #if (NGX_PCRE) ngx_uint_t nregex; ngx_http_server_name_t *regex; #endif /* the default server configuration for this address:port */ ngx_http_core_srv_conf_t *default_server; // 每个元素都指向ngx_http_core_srv_conf_t结构体,用于将监听端口和server{}虚拟主机关联起来 ngx_array_t servers; } ngx_http_conf_addr_t;
对于每一个监听地址ngx_http_conf_addr_t,都有一个ngx_listening_t与其对应。
相关文章推荐
- nginx高级配置
- heartbeat实现Nginx高可用
- Nginx upstream性能优化
- 关于安装nginx时,c compiler cc is not found的解决方案。
- Nginx goaccess 安装应用指南
- nginx支持ssl简介
- nginx中的内存池
- nginx内存池实现原理
- nginx进程模型
- 解决nginx 504 Gateway Time-out的一些方法
- Nginx负载均衡和LVS负载均衡的比较分析
- nginx并发模型与traffic_server并发模型简单比较
- Nginx控制域名301跳转出现"此网页包含重定向循环"
- lvs、haproxy、nginx 负载均衡的比较分析
- NGINX缓存使用官方指南
- nginx 多域名绑定
- nginx以日期分割日志文件
- 在浏览器里查看Nginx和PHP-FPM的运行状态
- Nginx 笔记与总结(6)Location:精准匹配
- Nginx配置