标签:nginx 高性能服务器 socket nginx启动
nginx的启动过程紧紧围绕着ngx_cycle_t的结构体展开,首先通过ngx_get_options()获取命令行参数,然后通过ngx_time_init()进行时间的初始化,如全局变量ngx_cached_time;再通过ngx_regx_init()完成正则的初始化,通过ngx_log_init()创建日志对象,初始化日志,如初始化全局变量ngx_prefix,打开日志文件ngx_log_file.fd;通过ngx_create_pool()创建内存池,大小为1024B;ngx_save_argv()保存命令行参数至全局变量ngx_os_argv、ngx_argc、ngx_argv;通过ngx_process_options()处理init_cycle中的配置文件路径,初始化ngx_cycle的prefix, conf_prefix, conf_file, conf_param等字段;ngx_os_init()完成操作系统的一些信息的获取,如内存页面大小、系统限制资源等信息,将其保存在对应的全局变量中,通过ngx_crc32_table_init()初始化一个循环冗余校验表,为后面高效查找循环冗余做准备;通过ngx_add_inherited_sockets:通过环境变量
然后对模块数组中的各模块进行编号,继而调用ngx_init_cycle()完成对ngx_cycle_t类型变量cycle的初始化,在ngx_init_t中做的事情如:
之后,根据条件调用 ngx_signal_process()对进程信号处理,通过ngx_os_status()获取操作系统的状态信息,读取配置文件的信息,
参考:http://blog.csdn.net/livelylittlefish/article/details/7243718
标签:nginx 高性能服务器 socket nginx启动
原文地址:http://blog.csdn.net/zcc_0015/article/details/38024959