在线支持网站更改为:http://nginx.taohui.org.cn
请大家访问新的站点,谢谢。
勘误公布
由于编写匆忙,本书难免存在部分遗漏,我将在这里公布书中的缺陷,以及由于软件更新而产生的修订内容。
1、98页第二段代码注释
“/*以下每个ngx_table_elt_t成员都是RFC1616规范....” ,其中,RFC1616应为RFC2616
2、109页第一段源代码倒数第5行
b->file->name.len = sizeof(filename) - 1;应改为b->file->name.len = strlen(filename) ;
3、139页表4-5的倒数第二行表格靠右列
ngx_bufs_t类型的成员可以使用nginx_conf_merge_str_value合并宏,应改为:ngx_bufs_t类型的成员可以使用 nginx_conf_merge_bufs_value合并宏
4、97页倒数第5行(非代码行中的倒数第5计,实际在 3) URL参数标题下)
arg 指向用户请求中的URL参数,应该为:args 指向用户请求中的URL参数
5.书中104页第三段源代码
TestHead: TestValud\r\n应改为 TestHead: TestValue\r\n
6.97页第5、6段文字
4处提到的extern变量应改为exten变量
7.97页倒数第5行
“http_protocol指向用户请求中HTTP的起始地址。”应改为“http_protocol的data成员指向用户请求中HTTP协议版本字符串的起始地址,len成员为协议版本字符串长度。”
8.101页倒数第2行
“NGX_http_SPECIAL_RESPONSE”应改为“NGX_HTTP_SPECIAL_RESPONSE”
9.102页倒数第7行
“而ngx_http_request_t的返回值是多样的”应改为“而ngx_http_send_header的返回值是多样的”
10.122页表4-2的ngx_conf_set_size_slot项的第2行
"Kilobyt"应为"Kilobyte"
11.119页第一块代码段中mycf结构体中的成员初始化时,前缀test_应改为my_,如下:
mycf->test_flag应改为mycf->my_flag
mycf->test_num应改为mycf->my_num
mycf->test_str_array应改为mycf->my_str_array
mycf->test_keyval应改为mycf->my_keyval
mycf->test_off应改为mycf->my_off
mycf->test_msec应改为mycf->my_msec
mycf->test_sec应改为mycf->my_sec
mycf->test_size应改为mycf->my_size
12. 554页倒数第7行,“//F_WRLCK意味着不会导致进程睡眠”应改为“//F_SETLK意味着不会导致进程睡眠”
而555页正数第14行,“//F_WRLCK意味着会导致进程睡眠”应改为“//F_SETLKW意味着会导致进程睡眠”
13. 77页第9行,header = part->elts;应为str = part->elts;。
14、283页图88的第1)步介绍中,如果ngx_noaccept标志位为1,应改为ngx_reap标志位为1。
15、284页图8-8中,最上面的一行中“若所有子进程已退出则返回的live为1“应改为“若所有子进程已退出则返回的live为0“,下面紧邻的”live标志位为1,同时“应改为”live标志位为1,同时“。
16、310页第13步中,最后补充一句说明:“注意,打开accept_mutex锁后则不执行这一步。”。
17、327页第6行“如果没有设置timer_resolution,一般情况下,process_events方法的timer参数都是大于0且小于500毫秒的值”,以上文字应当删除。
18、337页全部8处的ngx_process_changes,以及338页第2行的ngx_process_changes,都应改为ngx_process_events。
19、356行图10-3中,ngx_http_core_man+conf_t就为ngx_http_core_man_conf_t
20、379页10.6.4节中第一段倒数第2句,“处理方法组成的数组必然要有ngx_http_phase_engine_t阶段的处理方法”中,ngx_http_phase_engine_t应改为NGX_HTTP_FIND_CONFIG_PHASE。
1、98页第二段代码注释
“/*以下每个ngx_table_elt_t成员都是RFC1616规范....” ,其中,RFC1616应为RFC2616
2、109页第一段源代码倒数第5行
b->file->name.len = sizeof(filename) - 1;应改为b->file->name.len = strlen(filename) ;
3、139页表4-5的倒数第二行表格靠右列
ngx_bufs_t类型的成员可以使用nginx_conf_merge_str_value合并宏,应改为:ngx_bufs_t类型的成员可以使用 nginx_conf_merge_bufs_value合并宏
4、97页倒数第5行(非代码行中的倒数第5计,实际在 3) URL参数标题下)
arg 指向用户请求中的URL参数,应该为:args 指向用户请求中的URL参数
5.书中104页第三段源代码
TestHead: TestValud\r\n应改为 TestHead: TestValue\r\n
6.97页第5、6段文字
4处提到的extern变量应改为exten变量
7.97页倒数第5行
“http_protocol指向用户请求中HTTP的起始地址。”应改为“http_protocol的data成员指向用户请求中HTTP协议版本字符串的起始地址,len成员为协议版本字符串长度。”
8.101页倒数第2行
“NGX_http_SPECIAL_RESPONSE”应改为“NGX_HTTP_SPECIAL_RESPONSE”
9.102页倒数第7行
“而ngx_http_request_t的返回值是多样的”应改为“而ngx_http_send_header的返回值是多样的”
10.122页表4-2的ngx_conf_set_size_slot项的第2行
"Kilobyt"应为"Kilobyte"
11.119页第一块代码段中mycf结构体中的成员初始化时,前缀test_应改为my_,如下:
mycf->test_flag应改为mycf->my_flag
mycf->test_num应改为mycf->my_num
mycf->test_str_array应改为mycf->my_str_array
mycf->test_keyval应改为mycf->my_keyval
mycf->test_off应改为mycf->my_off
mycf->test_msec应改为mycf->my_msec
mycf->test_sec应改为mycf->my_sec
mycf->test_size应改为mycf->my_size
12. 554页倒数第7行,“//F_WRLCK意味着不会导致进程睡眠”应改为“//F_SETLK意味着不会导致进程睡眠”
而555页正数第14行,“//F_WRLCK意味着会导致进程睡眠”应改为“//F_SETLKW意味着会导致进程睡眠”
13. 77页第9行,header = part->elts;应为str = part->elts;。
14、283页图88的第1)步介绍中,如果ngx_noaccept标志位为1,应改为ngx_reap标志位为1。
15、284页图8-8中,最上面的一行中“若所有子进程已退出则返回的live为1“应改为“若所有子进程已退出则返回的live为0“,下面紧邻的”live标志位为1,同时“应改为”live标志位为1,同时“。
16、310页第13步中,最后补充一句说明:“注意,打开accept_mutex锁后则不执行这一步。”。
17、327页第6行“如果没有设置timer_resolution,一般情况下,process_events方法的timer参数都是大于0且小于500毫秒的值”,以上文字应当删除。
18、337页全部8处的ngx_process_changes,以及338页第2行的ngx_process_changes,都应改为ngx_process_events。
19、356行图10-3中,ngx_http_core_man+conf_t就为ngx_http_core_man_conf_t
20、379页10.6.4节中第一段倒数第2句,“处理方法组成的数组必然要有ngx_http_phase_engine_t阶段的处理方法”中,ngx_http_phase_engine_t应改为NGX_HTTP_FIND_CONFIG_PHASE。