分配用于保存配置参数的数据结构
为什么要这么严格地用一个结构体来存储配置项的参数值,而不是随意地定义几个全局变量来存储它们呢?这就要回到4.1节中例子的使用场景了,多个location块(或者http块、server块)中的相同配置项是允许同时生效的,也就是说,我们刚刚定义的ngx_http_mytest_conf_t结构必须在Nginx的内存中保存许多份。事实上,HTTP框架在解析nginx.conf文件时只要遇到http{}、server{}或者location{}配置块就会立刻分配一个新的ngx_http_mytest_conf_t结构体。因此,HTTP模块感兴趣的配置项需要统一地使用一个struct结构体来保存(否则HTTP框架无法管理),如果nginx.conf文件中在http{}下有多个server{}或者location{},那么这个struct结构体在Nginx进程中就会存在多份实例。