diff --git a/.gitignore b/.gitignore index ed8ebf583f771da9150c35db3955987b7d757904..576acca38bb9271fac7a5beadb95295f7eb2e876 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,4 @@ -__pycache__ \ No newline at end of file +__pycache__ +src +main.py +data/深入剖析Nginx.json \ No newline at end of file diff --git "a/data/\346\267\261\345\205\245\345\211\226\346\236\220Nginx.json" "b/data/\346\267\261\345\205\245\345\211\226\346\236\220Nginx.json" deleted file mode 100644 index 49309af14e4c315fbb8a18277b236de28fd53379..0000000000000000000000000000000000000000 --- "a/data/\346\267\261\345\205\245\345\211\226\346\236\220Nginx.json" +++ /dev/null @@ -1,318 +0,0 @@ -{ - "data/深入剖析Nginx/第02章 跟踪与调试/2.2 利用日志信息跟踪Nginx/代码片段2.2-4-example.conf": "https://bbs.csdn.net/topics/603891109", - "data/深入剖析Nginx/第02章 跟踪与调试/2.2 利用日志信息跟踪Nginx/代码片段2.2-3-example.conf": "https://bbs.csdn.net/topics/603891110", - "data/深入剖析Nginx/第02章 跟踪与调试/2.2 利用日志信息跟踪Nginx/代码片段2.2-1-ngx_auto_config.h": "https://bbs.csdn.net/topics/603890922", - "data/深入剖析Nginx/第02章 跟踪与调试/2.4 获得Nginx 程序完整执行流程/代码片段2.4-3-Makefile": "https://bbs.csdn.net/topics/603890923", - "data/深入剖析Nginx/第02章 跟踪与调试/2.4 获得Nginx 程序完整执行流程/代码片段2.4-9-addr2line.sh": "https://bbs.csdn.net/topics/603891011", - "data/深入剖析Nginx/第02章 跟踪与调试/2.4 获得Nginx 程序完整执行流程/代码片段2.4-5-ngx_core.h": "https://bbs.csdn.net/topics/603890866", - "data/深入剖析Nginx/第02章 跟踪与调试/2.4 获得Nginx 程序完整执行流程/代码片段2.4-1-my_debug.h": "https://bbs.csdn.net/topics/603891012", - "data/深入剖析Nginx/第02章 跟踪与调试/2.4 获得Nginx 程序完整执行流程/代码片段2.4-6-nginx.c": "https://bbs.csdn.net/topics/603890924", - "data/深入剖析Nginx/第02章 跟踪与调试/2.4 获得Nginx 程序完整执行流程/代码片段2.4-4-Makefile": "https://bbs.csdn.net/topics/603891013", - "data/深入剖析Nginx/第02章 跟踪与调试/2.4 获得Nginx 程序完整执行流程/代码片段2.4-7-nginx.c": "https://bbs.csdn.net/topics/603890925", - "data/深入剖析Nginx/第02章 跟踪与调试/2.4 获得Nginx 程序完整执行流程/代码片段2.4-8-nginx.c": "https://bbs.csdn.net/topics/603891014", - "data/深入剖析Nginx/第02章 跟踪与调试/2.5 加桩调试/代码片段2.5-1-nginx.c": "https://bbs.csdn.net/topics/603891111", - "data/深入剖析Nginx/第02章 跟踪与调试/2.1 利用gdb 调试/代码片段2.1.2-1-ngx_cycle.c": "https://bbs.csdn.net/topics/603891015", - "data/深入剖析Nginx/第02章 跟踪与调试/2.1 利用gdb 调试/代码片段2.1.2-2-ngx_cycle.c": "https://bbs.csdn.net/topics/603890926", - "data/深入剖析Nginx/第02章 跟踪与调试/2.1 利用gdb 调试/代码片段2.1.3-1-ngx_http_file_cache.c": "https://bbs.csdn.net/topics/603891016", - "data/深入剖析Nginx/第02章 跟踪与调试/2.6 特殊应用逻辑的调试/代码片段2.6-3-ngx_event_timer.c": "https://bbs.csdn.net/topics/603891017", - "data/深入剖析Nginx/第02章 跟踪与调试/2.6 特殊应用逻辑的调试/代码片段2.6-2-ngx_event_timer.c": "https://bbs.csdn.net/topics/603890927", - "data/深入剖析Nginx/第02章 跟踪与调试/2.6 特殊应用逻辑的调试/代码片段2.6-1-request_timeout.c": "https://bbs.csdn.net/topics/603890867", - "data/深入剖析Nginx/第08章 变量机制/8.1 初识变量/代码片段8.1-2-nginx.conf": "https://bbs.csdn.net/topics/603891018", - "data/深入剖析Nginx/第08章 变量机制/8.1 初识变量/代码片段8.1-1-ngx_process_cycle.c": "https://bbs.csdn.net/topics/603890868", - "data/深入剖析Nginx/第08章 变量机制/8.2 支撑机制/代码片段8.2-1-ngx_http_variables.h": "https://bbs.csdn.net/topics/603890928", - "data/深入剖析Nginx/第08章 变量机制/8.2 支撑机制/代码片段8.2-9-ngx_http_variables.c": "https://bbs.csdn.net/topics/603891112", - "data/深入剖析Nginx/第08章 变量机制/8.2 支撑机制/代码片段8.2-5-ngx_http_log_module.c": "https://bbs.csdn.net/topics/603890929", - "data/深入剖析Nginx/第08章 变量机制/8.2 支撑机制/代码片段8.2-12-ngx_http_core_module.c": "https://bbs.csdn.net/topics/603891113", - "data/深入剖析Nginx/第08章 变量机制/8.2 支撑机制/代码片段8.2-3-ngx_http_core.module.h": "https://bbs.csdn.net/topics/603890869", - "data/深入剖析Nginx/第08章 变量机制/8.2 支撑机制/-.txt": "https://bbs.csdn.net/topics/603890870", - "data/深入剖析Nginx/第08章 变量机制/8.2 支撑机制/代码片段8.2-8-ngx_http_variables.c": "https://bbs.csdn.net/topics/603890930", - "data/深入剖析Nginx/第08章 变量机制/8.2 支撑机制/代码片段8.2-7-ngx_http_variables.c": "https://bbs.csdn.net/topics/603891019", - "data/深入剖析Nginx/第08章 变量机制/8.2 支撑机制/代码片段8.2-10-ngx_cycle.c": "https://bbs.csdn.net/topics/603891020", - "data/深入剖析Nginx/第08章 变量机制/8.2 支撑机制/代码片段8.2-4-ngx_http_variables.c": "https://bbs.csdn.net/topics/603890871", - "data/深入剖析Nginx/第08章 变量机制/8.2 支撑机制/代码片段8.2-11-ngx_http_request.c": "https://bbs.csdn.net/topics/603891021", - "data/深入剖析Nginx/第08章 变量机制/8.3 脚本引擎/代码片段8.3-5-nginx.conf": "https://bbs.csdn.net/topics/603890872", - "data/深入剖析Nginx/第08章 变量机制/8.3 脚本引擎/代码片段8.3-2-nginx.conf": "https://bbs.csdn.net/topics/603890873", - "data/深入剖析Nginx/第08章 变量机制/8.3 脚本引擎/代码片段8.3-8-ngx_http_script.c": "https://bbs.csdn.net/topics/603891114", - "data/深入剖析Nginx/第08章 变量机制/8.3 脚本引擎/代码片段8.3-3-ngx_http_rewrite_module.c": "https://bbs.csdn.net/topics/603891115", - "data/深入剖析Nginx/第08章 变量机制/8.3 脚本引擎/代码片段8.3-4-ngx_http_rewrite_module.c": "https://bbs.csdn.net/topics/603890874", - "data/深入剖析Nginx/第08章 变量机制/8.3 脚本引擎/代码片段8.3-1-ngx_http_rewrite_module.c": "https://bbs.csdn.net/topics/603890875", - "data/深入剖析Nginx/第08章 变量机制/8.3 脚本引擎/代码片段8.3-6-ngx_http_rewrite_module.c": "https://bbs.csdn.net/topics/603891116", - "data/深入剖析Nginx/第08章 变量机制/8.3 脚本引擎/代码片段8.3-7-ngx_http_script.c": "https://bbs.csdn.net/topics/603890931", - "data/深入剖析Nginx/第08章 变量机制/8.4 执行顺序/代码片段8.4-1-nginx.conf": "https://bbs.csdn.net/topics/603891022", - "data/深入剖析Nginx/第05章 配置解析/5.3 配置文件解析流程/代码片段5.3-4-ngx_conf_file.c": "https://bbs.csdn.net/topics/603891117", - "data/深入剖析Nginx/第05章 配置解析/5.3 配置文件解析流程/代码片段5.3-5-ngx_conf_file.c": "https://bbs.csdn.net/topics/603890932", - "data/深入剖析Nginx/第05章 配置解析/5.3 配置文件解析流程/代码片段5.3-3-ngx_cycle.c": "https://bbs.csdn.net/topics/603891023", - "data/深入剖析Nginx/第05章 配置解析/5.3 配置文件解析流程/代码片段5.3-1-nginx.conf": "https://bbs.csdn.net/topics/603890876", - "data/深入剖析Nginx/第05章 配置解析/5.3 配置文件解析流程/代码片段5.3-6-nginx.c": "https://bbs.csdn.net/topics/603890877", - "data/深入剖析Nginx/第05章 配置解析/5.2 配置项目解析准备/代码片段5.2-1-nginx.c": "https://bbs.csdn.net/topics/603890933", - "data/深入剖析Nginx/第05章 配置解析/5.2 配置项目解析准备/代码片段5.2-2-ngx_conf_file.h": "https://bbs.csdn.net/topics/603890934", - "data/深入剖析Nginx/第05章 配置解析/5.5 配置信息的继承/代码片段5.5-1-ngx_http.c": "https://bbs.csdn.net/topics/603891118", - "data/深入剖析Nginx/第05章 配置解析/5.5 配置信息的继承/代码片段5.5-3-ngx_cycle.c": "https://bbs.csdn.net/topics/603890935", - "data/深入剖析Nginx/第05章 配置解析/5.5 配置信息的继承/代码片段5.5-2-ngx_http_core_module.c": "https://bbs.csdn.net/topics/603891024", - "data/深入剖析Nginx/第05章 配置解析/5.5 配置信息的继承/代码片段5.5-4-ngx_http_core_module.c": "https://bbs.csdn.net/topics/603891119", - "data/深入剖析Nginx/第05章 配置解析/5.4 配置信息组织结构/代码片段5.4-9-ngx_http.c": "https://bbs.csdn.net/topics/603890878", - "data/深入剖析Nginx/第05章 配置解析/5.4 配置信息组织结构/代码片段5.4-13-ngx_conf_file.c": "https://bbs.csdn.net/topics/603891025", - "data/深入剖析Nginx/第05章 配置解析/5.4 配置信息组织结构/代码片段5.4-11-ngx_http_core_module.c": "https://bbs.csdn.net/topics/603890879", - "data/深入剖析Nginx/第05章 配置解析/5.4 配置信息组织结构/代码片段5.4-1-ngx_cycle.c": "https://bbs.csdn.net/topics/603890936", - "data/深入剖析Nginx/第05章 配置解析/5.4 配置信息组织结构/代码片段5.4-10-ngx_http_core_module.c": "https://bbs.csdn.net/topics/603890880", - "data/深入剖析Nginx/第05章 配置解析/5.4 配置信息组织结构/代码片段5.4-14-ngx_http_config.h": "https://bbs.csdn.net/topics/603890881", - "data/深入剖析Nginx/第05章 配置解析/5.4 配置信息组织结构/代码片段5.4-2-nginx.c": "https://bbs.csdn.net/topics/603890937", - "data/深入剖析Nginx/第05章 配置解析/5.4 配置信息组织结构/代码片段5.4-7-nginx.c": "https://bbs.csdn.net/topics/603891120", - "data/深入剖析Nginx/第05章 配置解析/5.4 配置信息组织结构/代码片段5.4-3-ngx_cycle.c": "https://bbs.csdn.net/topics/603890938", - "data/深入剖析Nginx/第05章 配置解析/5.4 配置信息组织结构/代码片段5.4-8-ngx_http.c": "https://bbs.csdn.net/topics/603891121", - "data/深入剖析Nginx/第05章 配置解析/5.4 配置信息组织结构/代码片段5.4-6-ngx_conf_file.c": "https://bbs.csdn.net/topics/603891026", - "data/深入剖析Nginx/第05章 配置解析/5.4 配置信息组织结构/代码片段5.4-12-ngx_http_charset_filter_module.c": "https://bbs.csdn.net/topics/603891027", - "data/深入剖析Nginx/第05章 配置解析/5.4 配置信息组织结构/代码片段5.4-4-nginx.c": "https://bbs.csdn.net/topics/603891122", - "data/深入剖析Nginx/第06章 模块综述/代码片段6-3-ngx_http_core_module.c": "https://bbs.csdn.net/topics/603890882", - "data/深入剖析Nginx/第06章 模块综述/代码片段6-4-ngx_http.c": "https://bbs.csdn.net/topics/603891123", - "data/深入剖析Nginx/第06章 模块综述/代码片段6-1-ngx_conf_file.h": "https://bbs.csdn.net/topics/603891124", - "data/深入剖析Nginx/第06章 模块综述/6.2 Filter 模块/代码片段6.2-1-ngx_http.c": "https://bbs.csdn.net/topics/603890883", - "data/深入剖析Nginx/第06章 模块综述/6.2 Filter 模块/代码片段6.2-4-ngx_http_chunked_filter_module.c": "https://bbs.csdn.net/topics/603891125", - "data/深入剖析Nginx/第06章 模块综述/6.2 Filter 模块/代码片段6.2-3-ngx_http_header_filter_module.c": "https://bbs.csdn.net/topics/603890884", - "data/深入剖析Nginx/第06章 模块综述/6.2 Filter 模块/代码片段6.2-5-ngx_http_core_module.c": "https://bbs.csdn.net/topics/603890939", - "data/深入剖析Nginx/第06章 模块综述/6.2 Filter 模块/代码片段6.2-2-ngx_http.c": "https://bbs.csdn.net/topics/603890940", - "data/深入剖析Nginx/第06章 模块综述/6.2 Filter 模块/代码片段6.2-6-ngx_http_not_modified_filter_module.c": "https://bbs.csdn.net/topics/603890941", - "data/深入剖析Nginx/第06章 模块综述/6.3 Upstream 模块/代码片段6.3-1-nginx.conf.upstream": "https://bbs.csdn.net/topics/603891028", - "data/深入剖析Nginx/第06章 模块综述/6.3 Upstream 模块/代码片段6.3-2-ngx_http_upstream.c": "https://bbs.csdn.net/topics/603890885", - "data/深入剖析Nginx/第06章 模块综述/6.3 Upstream 模块/代码片段6.3-3-ngx_http_proxy_module.c": "https://bbs.csdn.net/topics/603891029", - "data/深入剖析Nginx/第06章 模块综述/6.3 Upstream 模块/代码片段6.3-4-ngx_http_core_module.c": "https://bbs.csdn.net/topics/603890942", - "data/深入剖析Nginx/第06章 模块综述/6.3 Upstream 模块/代码片段6.3-5-ngx_http_core_module.c": "https://bbs.csdn.net/topics/603891030", - "data/深入剖析Nginx/第06章 模块综述/6.1 Handler 模块/代码片段6.1-1-ngx_http_static_module.c": "https://bbs.csdn.net/topics/603890886", - "data/深入剖析Nginx/第06章 模块综述/6.1 Handler 模块/代码片段6.1-2-ngx_http_core_module.c": "https://bbs.csdn.net/topics/603891031", - "data/深入剖析Nginx/第06章 模块综述/6.1 Handler 模块/代码片段6.1-3-ngx_http_core_module.c": "https://bbs.csdn.net/topics/603890887", - "data/深入剖析Nginx/第06章 模块综述/6.4 Load-balance 模块/代码片段6.4-1-nginx.conf": "https://bbs.csdn.net/topics/603890943", - "data/深入剖析Nginx/第04章 数据结构/代码片段4-1-ngx_string.h": "https://bbs.csdn.net/topics/603890888", - "data/深入剖析Nginx/第04章 数据结构/4.1 内存池/代码片段4.1-4-ngx_palloc.c": "https://bbs.csdn.net/topics/603890944", - "data/深入剖析Nginx/第04章 数据结构/4.1 内存池/代码片段4.1-3-ngx_palloc.c": "https://bbs.csdn.net/topics/603891126", - "data/深入剖析Nginx/第04章 数据结构/4.1 内存池/代码片段4.1-1-ngx_palloc.c": "https://bbs.csdn.net/topics/603890945", - "data/深入剖析Nginx/第04章 数据结构/4.3 Radix tree/代码片段4.3-3-ngx_radix_tree.h": "https://bbs.csdn.net/topics/603890946", - "data/深入剖析Nginx/第04章 数据结构/4.3 Radix tree/代码片段4.3-1-ngx_radix_tree.c": "https://bbs.csdn.net/topics/603890947", - "data/深入剖析Nginx/第04章 数据结构/4.3 Radix tree/代码片段4.3-2-ngx_radix_tree.c": "https://bbs.csdn.net/topics/603891127", - "data/深入剖析Nginx/第04章 数据结构/4.2 Hash/代码片段4.2-3-ngx_hash.h": "https://bbs.csdn.net/topics/603891032", - "data/深入剖析Nginx/第04章 数据结构/4.2 Hash/代码片段4.2-5-ngx_hash.c": "https://bbs.csdn.net/topics/603891033", - "data/深入剖析Nginx/第04章 数据结构/4.2 Hash/代码片段4.2-6-ngx_hash.c": "https://bbs.csdn.net/topics/603890948", - "data/深入剖析Nginx/第04章 数据结构/4.2 Hash/代码片段4.2-4-ngx_hash.c": "https://bbs.csdn.net/topics/603891128", - "data/深入剖析Nginx/第04章 数据结构/4.2 Hash/代码片段4.2-1-nginx.conf": "https://bbs.csdn.net/topics/603891129", - "data/深入剖析Nginx/第04章 数据结构/4.2 Hash/代码片段4.2-2-ngx_http.c": "https://bbs.csdn.net/topics/603891034", - "data/深入剖析Nginx/第09章 请求处理与响应/9.4 数据响应/代码片段9.4-1-ngx_http_header_filter_module.c": "https://bbs.csdn.net/topics/603890949", - "data/深入剖析Nginx/第09章 请求处理与响应/9.4 数据响应/代码片段9.4-5-ngx_linux_sendfile_chain.c": "https://bbs.csdn.net/topics/603891130", - "data/深入剖析Nginx/第09章 请求处理与响应/9.4 数据响应/代码片段9.4-2-ngx_http_write_filter_module.c": "https://bbs.csdn.net/topics/603890889", - "data/深入剖析Nginx/第09章 请求处理与响应/9.4 数据响应/代码片段9.4-4-ngx_http_write_filter_module.c": "https://bbs.csdn.net/topics/603890890", - "data/深入剖析Nginx/第09章 请求处理与响应/9.4 数据响应/代码片段9.4-3-ngx_http_static_module.c": "https://bbs.csdn.net/topics/603890891", - "data/深入剖析Nginx/第09章 请求处理与响应/9.5 子请求/代码片段9.5-16-ngx_http_request.c": "https://bbs.csdn.net/topics/603891035", - "data/深入剖析Nginx/第09章 请求处理与响应/9.5 子请求/代码片段9.5-12-ngx_http_postpone_filter_module.c": "https://bbs.csdn.net/topics/603890950", - "data/深入剖析Nginx/第09章 请求处理与响应/9.5 子请求/代码片段9.5-3-ngx_http_request.h": "https://bbs.csdn.net/topics/603891131", - "data/深入剖析Nginx/第09章 请求处理与响应/9.5 子请求/代码片段9.5-6-ngx_http_core_module.h": "https://bbs.csdn.net/topics/603891132", - "data/深入剖析Nginx/第09章 请求处理与响应/9.5 子请求/代码片段9.5-9-ngx_http_request.c": "https://bbs.csdn.net/topics/603891036", - "data/深入剖析Nginx/第09章 请求处理与响应/9.5 子请求/代码片段9.5-4-ngx_http_request.c": "https://bbs.csdn.net/topics/603890892", - "data/深入剖析Nginx/第09章 请求处理与响应/9.5 子请求/代码片段9.5-15-ngx_http_request.c": "https://bbs.csdn.net/topics/603890893", - "data/深入剖析Nginx/第09章 请求处理与响应/9.5 子请求/代码片段9.5-13-ngx_http_request.c": "https://bbs.csdn.net/topics/603891133", - "data/深入剖析Nginx/第09章 请求处理与响应/9.5 子请求/代码片段9.5-11-ngx_http_postpone_filter_module.c": "https://bbs.csdn.net/topics/603891134", - "data/深入剖析Nginx/第09章 请求处理与响应/9.5 子请求/代码片段9.5-5-ngx_http_addition_filter_module.c": "https://bbs.csdn.net/topics/603891135", - "data/深入剖析Nginx/第09章 请求处理与响应/9.5 子请求/代码片段9.5-10-ngx_http_request.c": "https://bbs.csdn.net/topics/603890951", - "data/深入剖析Nginx/第09章 请求处理与响应/9.5 子请求/代码片段9.5-8-ngx_http_core_module.c": "https://bbs.csdn.net/topics/603890894", - "data/深入剖析Nginx/第09章 请求处理与响应/9.5 子请求/代码片段9.5-1-nginx.conf": "https://bbs.csdn.net/topics/603891136", - "data/深入剖析Nginx/第09章 请求处理与响应/9.5 子请求/代码片段9.5-7-ngx_http_core_module.c": "https://bbs.csdn.net/topics/603890895", - "data/深入剖析Nginx/第09章 请求处理与响应/9.5 子请求/代码片段9.5-2-ngx_http_request.h": "https://bbs.csdn.net/topics/603890896", - "data/深入剖析Nginx/第09章 请求处理与响应/9.5 子请求/代码片段9.5-14-ngx_http_postpone_filter_module.c": "https://bbs.csdn.net/topics/603891137", - "data/深入剖析Nginx/第09章 请求处理与响应/9.3 请求处理/代码片段9.3-5-ngx_http_request.c": "https://bbs.csdn.net/topics/603891037", - "data/深入剖析Nginx/第09章 请求处理与响应/9.3 请求处理/代码片段9.3-3-ngx_http_request.c": "https://bbs.csdn.net/topics/603891138", - "data/深入剖析Nginx/第09章 请求处理与响应/9.3 请求处理/代码片段9.3-6-ngx_http_core_module.c": "https://bbs.csdn.net/topics/603890897", - "data/深入剖析Nginx/第09章 请求处理与响应/9.3 请求处理/代码片段9.3-1-ngx_http_request.c": "https://bbs.csdn.net/topics/603891038", - "data/深入剖析Nginx/第09章 请求处理与响应/9.3 请求处理/代码片段9.3-2-ngx_http_request.c": "https://bbs.csdn.net/topics/603891139", - "data/深入剖析Nginx/第09章 请求处理与响应/9.3 请求处理/代码片段9.3-4-ngx_http_request.c": "https://bbs.csdn.net/topics/603891140", - "data/深入剖析Nginx/第09章 请求处理与响应/9.2 创建连接套接口/代码片段9.2-3-ngx_http_request.c": "https://bbs.csdn.net/topics/603891039", - "data/深入剖析Nginx/第09章 请求处理与响应/9.2 创建连接套接口/代码片段9.2-4-ngx_http_request.c": "https://bbs.csdn.net/topics/603890952", - "data/深入剖析Nginx/第09章 请求处理与响应/9.2 创建连接套接口/代码片段9.2-1-ngx_event_accept.c": "https://bbs.csdn.net/topics/603891040", - "data/深入剖析Nginx/第09章 请求处理与响应/9.2 创建连接套接口/代码片段9.2-2-ngx_event_accept.c": "https://bbs.csdn.net/topics/603890953", - "data/深入剖析Nginx/第09章 请求处理与响应/9.1 创建监听套接口/代码片段9.1-7-ngx_event_accept.c": "https://bbs.csdn.net/topics/603890898", - "data/深入剖析Nginx/第09章 请求处理与响应/9.1 创建监听套接口/代码片段9.1-3-nginx.conf": "https://bbs.csdn.net/topics/603890899", - "data/深入剖析Nginx/第09章 请求处理与响应/9.1 创建监听套接口/代码片段9.1-1-nginx.conf": "https://bbs.csdn.net/topics/603891041", - "data/深入剖析Nginx/第09章 请求处理与响应/9.1 创建监听套接口/代码片段9.1-2-ngx_http_core_module.c": "https://bbs.csdn.net/topics/603891141", - "data/深入剖析Nginx/第09章 请求处理与响应/9.1 创建监听套接口/代码片段9.1-6-ngx_event.c": "https://bbs.csdn.net/topics/603891200", - "data/深入剖析Nginx/第09章 请求处理与响应/9.1 创建监听套接口/代码片段9.1-5-ngx_event.c": "https://bbs.csdn.net/topics/603891201", - "data/深入剖析Nginx/第09章 请求处理与响应/9.1 创建监听套接口/代码片段9.1-4-ngx_connection.c": "https://bbs.csdn.net/topics/603891042", - "data/深入剖析Nginx/第09章 请求处理与响应/9.6 连接关闭/代码片段9.6.1-1-ngx_http_request.c": "https://bbs.csdn.net/topics/603890954", - "data/深入剖析Nginx/第09章 请求处理与响应/9.6 连接关闭/代码片段9.6.2-3-ngx_http_request.c": "https://bbs.csdn.net/topics/603890955", - "data/深入剖析Nginx/第09章 请求处理与响应/9.6 连接关闭/代码片段9.6.2-6-ngx_http_request_body.c": "https://bbs.csdn.net/topics/603891202", - "data/深入剖析Nginx/第09章 请求处理与响应/9.6 连接关闭/代码片段9.6-3-ngx_http_request.c": "https://bbs.csdn.net/topics/603890956", - "data/深入剖析Nginx/第09章 请求处理与响应/9.6 连接关闭/代码片段9.6.1-4-ngx_http_request.c": "https://bbs.csdn.net/topics/603891203", - "data/深入剖析Nginx/第09章 请求处理与响应/9.6 连接关闭/代码片段9.6.2-5-ngx_http_request.c": "https://bbs.csdn.net/topics/603890957", - "data/深入剖析Nginx/第09章 请求处理与响应/9.6 连接关闭/代码片段9.6.2-8-ngx_http_request.c": "https://bbs.csdn.net/topics/603891142", - "data/深入剖析Nginx/第09章 请求处理与响应/9.6 连接关闭/代码片段9.6.1-7-ngx_http_request.c": "https://bbs.csdn.net/topics/603891204", - "data/深入剖析Nginx/第09章 请求处理与响应/9.6 连接关闭/代码片段9.6.1-2-ngx_http_core_module.c": "https://bbs.csdn.net/topics/603891143", - "data/深入剖析Nginx/第09章 请求处理与响应/9.6 连接关闭/代码片段9.6.2-7-ngx_http_request.c": "https://bbs.csdn.net/topics/603891144", - "data/深入剖析Nginx/第09章 请求处理与响应/9.6 连接关闭/代码片段9.6-1-ngx_http_request.c": "https://bbs.csdn.net/topics/603890958", - "data/深入剖析Nginx/第09章 请求处理与响应/9.6 连接关闭/代码片段9.6.1-6-ngx_http_request.c": "https://bbs.csdn.net/topics/603891043", - "data/深入剖析Nginx/第09章 请求处理与响应/9.6 连接关闭/代码片段9.6.1-5-ngx_http_request.c": "https://bbs.csdn.net/topics/603891044", - "data/深入剖析Nginx/第09章 请求处理与响应/9.6 连接关闭/代码片段9.6-2-ngx_http_request.c": "https://bbs.csdn.net/topics/603890959", - "data/深入剖析Nginx/第09章 请求处理与响应/9.6 连接关闭/代码片段9.6.2-4-ngx_http_request.c": "https://bbs.csdn.net/topics/603891145", - "data/深入剖析Nginx/第09章 请求处理与响应/9.6 连接关闭/代码片段9.6.2-9-ngx_http_request.c": "https://bbs.csdn.net/topics/603891045", - "data/深入剖析Nginx/第09章 请求处理与响应/9.6 连接关闭/代码片段9.6.2-2-ngx_http_request.c": "https://bbs.csdn.net/topics/603891046", - "data/深入剖析Nginx/第09章 请求处理与响应/9.6 连接关闭/代码片段9.6.1-3-ngx_http_request.c": "https://bbs.csdn.net/topics/603890960", - "data/深入剖析Nginx/第09章 请求处理与响应/9.6 连接关闭/代码片段9.6.2-1-\\linux-3.4.4\\include\\linux\\socket.h": "https://bbs.csdn.net/topics/603891047", - "data/深入剖析Nginx/第07章 事件管理机制/7.5 超时管理/代码片段7.5-8-ngx_event.c": "https://bbs.csdn.net/topics/603891146", - "data/深入剖析Nginx/第07章 事件管理机制/7.5 超时管理/代码片段7.5-7-ngx_epoll_module.c": "https://bbs.csdn.net/topics/603891205", - "data/深入剖析Nginx/第07章 事件管理机制/7.5 超时管理/代码片段7.5-3-ngx_http_request.c": "https://bbs.csdn.net/topics/603891048", - "data/深入剖析Nginx/第07章 事件管理机制/7.5 超时管理/代码片段7.5-1-ngx_event.h": "https://bbs.csdn.net/topics/603891049", - "data/深入剖析Nginx/第07章 事件管理机制/7.5 超时管理/代码片段7.5-4-nginx.conf": "https://bbs.csdn.net/topics/603890961", - "data/深入剖析Nginx/第07章 事件管理机制/7.5 超时管理/代码片段7.5-2-ngx_event_timer.c": "https://bbs.csdn.net/topics/603890962", - "data/深入剖析Nginx/第07章 事件管理机制/7.5 超时管理/代码片段7.5-5-ngx_event.c": "https://bbs.csdn.net/topics/603891050", - "data/深入剖析Nginx/第07章 事件管理机制/7.5 超时管理/代码片段7.5-6-ngx_event.c": "https://bbs.csdn.net/topics/603891051", - "data/深入剖析Nginx/第07章 事件管理机制/7.4 负载均衡/代码片段7.4.1-4-ngx_event.c": "https://bbs.csdn.net/topics/603891206", - "data/深入剖析Nginx/第07章 事件管理机制/7.4 负载均衡/代码片段7.4.1-8-ngx_event.c": "https://bbs.csdn.net/topics/603891207", - "data/深入剖析Nginx/第07章 事件管理机制/7.4 负载均衡/代码片段7.4.1-1-ngx_event.c": "https://bbs.csdn.net/topics/603891208", - "data/深入剖析Nginx/第07章 事件管理机制/7.4 负载均衡/代码片段7.4.1-2-ngx_event.c": "https://bbs.csdn.net/topics/603891147", - "data/深入剖析Nginx/第07章 事件管理机制/7.4 负载均衡/代码片段7.4.1-5-ngx_event_accept.c": "https://bbs.csdn.net/topics/603891209", - "data/深入剖析Nginx/第07章 事件管理机制/7.4 负载均衡/代码片段7.4.1-7-ngx_epoll_module.c": "https://bbs.csdn.net/topics/603890963", - "data/深入剖析Nginx/第07章 事件管理机制/7.4 负载均衡/代码片段7.4.2-1-nginx.conf": "https://bbs.csdn.net/topics/603891148", - "data/深入剖析Nginx/第07章 事件管理机制/7.4 负载均衡/代码片段7.4.1-6-ngx_event.c": "https://bbs.csdn.net/topics/603890964", - "data/深入剖析Nginx/第07章 事件管理机制/7.4 负载均衡/代码片段7.4.1-3-ngx_event.c": "https://bbs.csdn.net/topics/603891210", - "data/深入剖析Nginx/第07章 事件管理机制/7.2 epoll 模型/代码片段7.2-4-epoll_test.c": "https://bbs.csdn.net/topics/603890965", - "data/深入剖析Nginx/第07章 事件管理机制/7.2 epoll 模型/代码片段7.2-3-ngx_epoll_module.c": "https://bbs.csdn.net/topics/603891149", - "data/深入剖析Nginx/第07章 事件管理机制/7.2 epoll 模型/代码片段7.2-1--usr-include-sys-epoll.h": "https://bbs.csdn.net/topics/603891211", - "data/深入剖析Nginx/第07章 事件管理机制/7.2 epoll 模型/代码片段7.2-2-ngx_event_accept.c": "https://bbs.csdn.net/topics/603890966", - "data/深入剖析Nginx/第07章 事件管理机制/7.1 IO 多路复用模型/代码片段7.1-4-ngx_event.c": "https://bbs.csdn.net/topics/603891150", - "data/深入剖析Nginx/第07章 事件管理机制/7.1 IO 多路复用模型/代码片段7.1-1-ngx_event.c": "https://bbs.csdn.net/topics/603891052", - "data/深入剖析Nginx/第07章 事件管理机制/7.1 IO 多路复用模型/代码片段7.1-3-ngx_epoll_module.c": "https://bbs.csdn.net/topics/603890967", - "data/深入剖析Nginx/第07章 事件管理机制/7.3 事件处理/代码片段7.3-1-ngx_event.c": "https://bbs.csdn.net/topics/603891151", - "data/深入剖析Nginx/附录A/-objs-ngx_modules.c": "https://bbs.csdn.net/topics/603890968", - "data/深入剖析Nginx/第11章 动态页面请求处理/11.1 测试环境/代码片段11.1-1-nginx.conf.fastcgi": "https://bbs.csdn.net/topics/603890969", - "data/深入剖析Nginx/第11章 动态页面请求处理/11.1 测试环境/代码片段11.1-2-fileupload.php": "https://bbs.csdn.net/topics/603891212", - "data/深入剖析Nginx/第11章 动态页面请求处理/11.2 客户端发起PHP 请求/代码片段11.2-2-ngx_http_fastcgi_module.c": "https://bbs.csdn.net/topics/603890970", - "data/深入剖析Nginx/第11章 动态页面请求处理/11.2 客户端发起PHP 请求/代码片段11.2-1-ngx_http_core_module.c": "https://bbs.csdn.net/topics/603891152", - "data/深入剖析Nginx/第11章 动态页面请求处理/11.2 客户端发起PHP 请求/代码片段11.2-3-ngx_http_request_body.c": "https://bbs.csdn.net/topics/603891053", - "data/深入剖析Nginx/第11章 动态页面请求处理/11.4 数据响应/代码片段11.4.2-14-ngx_event_pipe.c": "https://bbs.csdn.net/topics/603890971", - "data/深入剖析Nginx/第11章 动态页面请求处理/11.4 数据响应/代码片段11.4.2-10-ngx_event_pipe.c": "https://bbs.csdn.net/topics/603891153", - "data/深入剖析Nginx/第11章 动态页面请求处理/11.4 数据响应/代码片段11.4.2-1-ngx_http_fastcgi_module.c": "https://bbs.csdn.net/topics/603891054", - "data/深入剖析Nginx/第11章 动态页面请求处理/11.4 数据响应/代码片段11.4.2-2-ngx_event_pipe.h": "https://bbs.csdn.net/topics/603890972", - "data/深入剖析Nginx/第11章 动态页面请求处理/11.4 数据响应/代码片段11.4.1-2-ngx_http_upstream.c": "https://bbs.csdn.net/topics/603891213", - "data/深入剖析Nginx/第11章 动态页面请求处理/11.4 数据响应/代码片段11.4.1-1-ngx_http_upstream.c": "https://bbs.csdn.net/topics/603891154", - "data/深入剖析Nginx/第11章 动态页面请求处理/11.4 数据响应/代码片段11.4.2-11-ngx_event_pipe.c": "https://bbs.csdn.net/topics/603891055", - "data/深入剖析Nginx/第11章 动态页面请求处理/11.4 数据响应/代码片段11.4.1-6-ngx_http_upstream.c": "https://bbs.csdn.net/topics/603890973", - "data/深入剖析Nginx/第11章 动态页面请求处理/11.4 数据响应/代码片段11.4.1-5-ngx_http_upstream.c": "https://bbs.csdn.net/topics/603891056", - "data/深入剖析Nginx/第11章 动态页面请求处理/11.4 数据响应/代码片段11.4.1-4-ngx_http_upstream.c": "https://bbs.csdn.net/topics/603891155", - "data/深入剖析Nginx/第11章 动态页面请求处理/11.4 数据响应/代码片段11.4.2-4-ngx_event_pipe.h": "https://bbs.csdn.net/topics/603891156", - "data/深入剖析Nginx/第11章 动态页面请求处理/11.4 数据响应/代码片段11.4.1-3-ngx_http_fastcgi_module.c": "https://bbs.csdn.net/topics/603891157", - "data/深入剖析Nginx/第11章 动态页面请求处理/11.4 数据响应/代码片段11.4.2-9-ngx_event_pipe.c": "https://bbs.csdn.net/topics/603890974", - "data/深入剖析Nginx/第11章 动态页面请求处理/11.4 数据响应/代码片段11.4.2-12-ngx_event_pipe.c": "https://bbs.csdn.net/topics/603891214", - "data/深入剖析Nginx/第11章 动态页面请求处理/11.4 数据响应/代码片段11.4.2-7-ngx_event_pipe.c": "https://bbs.csdn.net/topics/603890975", - "data/深入剖析Nginx/第11章 动态页面请求处理/11.4 数据响应/代码片段11.4.2-5-ngx_http_upstream.c": "https://bbs.csdn.net/topics/603891166", - "data/深入剖析Nginx/第11章 动态页面请求处理/11.4 数据响应/代码片段11.4.2-8-ngx_event_pipe.c": "https://bbs.csdn.net/topics/603891073", - "data/深入剖析Nginx/第11章 动态页面请求处理/11.4 数据响应/代码片段11.4.2-13-ngx_event_pipe.c": "https://bbs.csdn.net/topics/603890987", - "data/深入剖析Nginx/第11章 动态页面请求处理/11.4 数据响应/代码片段11.4.2-3-ngx_http_upstream.c": "https://bbs.csdn.net/topics/603891227", - "data/深入剖析Nginx/第11章 动态页面请求处理/11.3 请求转发/代码片段11.3.1-1-ngx_http_upstream.c": "https://bbs.csdn.net/topics/603891228", - "data/深入剖析Nginx/第11章 动态页面请求处理/11.3 请求转发/代码片段11.3-2-ngx_http_upstream.c": "https://bbs.csdn.net/topics/603891174", - "data/深入剖析Nginx/第11章 动态页面请求处理/11.3 请求转发/代码片段11.3.1-3-ngx_http_upstream.c": "https://bbs.csdn.net/topics/603890994", - "data/深入剖析Nginx/第11章 动态页面请求处理/11.3 请求转发/代码片段11.3.1-4-ngx_http_upstream.c": "https://bbs.csdn.net/topics/603891236", - "data/深入剖析Nginx/第11章 动态页面请求处理/11.3 请求转发/代码片段11.3.1-6-ngx_http_upstream.c": "https://bbs.csdn.net/topics/603891180", - "data/深入剖析Nginx/第11章 动态页面请求处理/11.3 请求转发/代码片段11.3.1-7-ngx_http_upstream.c": "https://bbs.csdn.net/topics/603891181", - "data/深入剖析Nginx/第11章 动态页面请求处理/11.3 请求转发/代码片段11.3.2-1-ngx_http_upstream.c": "https://bbs.csdn.net/topics/603891238", - "data/深入剖析Nginx/第11章 动态页面请求处理/11.3 请求转发/代码片段11.3.1-5-ngx_event_connect.c": "https://bbs.csdn.net/topics/603891082", - "data/深入剖析Nginx/第11章 动态页面请求处理/11.3 请求转发/代码片段11.3-1-ngx_http_fastcgi_module.c": "https://bbs.csdn.net/topics/603890998", - "data/深入剖析Nginx/第11章 动态页面请求处理/11.3 请求转发/代码片段11.3.1-2-nginx.conf.fastcgi": "https://bbs.csdn.net/topics/603891083", - "data/深入剖析Nginx/第03章 进程模型/3.5 共享内存/代码片段3.5-1-ngx_cycle.h": "https://bbs.csdn.net/topics/603891182", - "data/深入剖析Nginx/第03章 进程模型/3.5 共享内存/代码片段3.5-2-ngx_cycle.c": "https://bbs.csdn.net/topics/603891239", - "data/深入剖析Nginx/第03章 进程模型/3.5 共享内存/代码片段3.5-3-ngx_http_limit_req_module.c": "https://bbs.csdn.net/topics/603890999", - "data/深入剖析Nginx/第03章 进程模型/3.2 核心进程模型/代码片段3.2.2-1-ngx_process_cycle.c": "https://bbs.csdn.net/topics/603891183", - "data/深入剖析Nginx/第03章 进程模型/3.2 核心进程模型/代码片段3.2.1-1-ngx_process_cycle.c": "https://bbs.csdn.net/topics/603891084", - "data/深入剖析Nginx/第03章 进程模型/3.3 Cache 进程模型/代码片段3.3.1-1-ngx_process_cycle.c": "https://bbs.csdn.net/topics/603891240", - "data/深入剖析Nginx/第03章 进程模型/3.3 Cache 进程模型/代码片段3.3.1-3-ngx_process_cycle.c": "https://bbs.csdn.net/topics/603891241", - "data/深入剖析Nginx/第03章 进程模型/3.3 Cache 进程模型/代码片段3.3.1-4-ngx_process_cycle.c": "https://bbs.csdn.net/topics/603891184", - "data/深入剖析Nginx/第03章 进程模型/3.3 Cache 进程模型/代码片段3.3.1-5-ngx_http_file_cache.c": "https://bbs.csdn.net/topics/603891185", - "data/深入剖析Nginx/第03章 进程模型/3.3 Cache 进程模型/代码片段3.3.1-2-ngx_process_cycle.h": "https://bbs.csdn.net/topics/603891242", - "data/深入剖析Nginx/第03章 进程模型/3.3 Cache 进程模型/代码片段3.3-1-nginx.conf": "https://bbs.csdn.net/topics/603891186", - "data/深入剖析Nginx/第03章 进程模型/3.3 Cache 进程模型/代码片段3.3.2-2-ngx_process_cycle.c": "https://bbs.csdn.net/topics/603891300", - "data/深入剖析Nginx/第03章 进程模型/3.3 Cache 进程模型/代码片段3.3.2-1-ngx_process_cycle.c": "https://bbs.csdn.net/topics/603891187", - "data/深入剖析Nginx/第03章 进程模型/3.4 进程通信/代码片段3.4-5-ngx_process_cycle.c": "https://bbs.csdn.net/topics/603891301", - "data/深入剖析Nginx/第03章 进程模型/3.4 进程通信/代码片段3.4-4-ngx_process_cycle.c": "https://bbs.csdn.net/topics/603891302", - "data/深入剖析Nginx/第03章 进程模型/3.4 进程通信/代码片段3.4-3-ngx_process_cycle.c": "https://bbs.csdn.net/topics/603891188", - "data/深入剖析Nginx/第03章 进程模型/3.4 进程通信/代码片段3.4-1-ngx_process.h": "https://bbs.csdn.net/topics/603891303", - "data/深入剖析Nginx/第03章 进程模型/3.7 信号处理/代码片段3.7.1-2-ngx_process.c": "https://bbs.csdn.net/topics/603891085", - "data/深入剖析Nginx/第03章 进程模型/3.7 信号处理/代码片段3.7.1-1-ngx_process.c": "https://bbs.csdn.net/topics/603891304", - "data/深入剖析Nginx/第03章 进程模型/3.7 信号处理/代码片段3.7.3-2-ngx_process_cycle.c": "https://bbs.csdn.net/topics/603891243", - "data/深入剖析Nginx/第03章 进程模型/3.7 信号处理/代码片段3.7.2-1-ngx_process.c": "https://bbs.csdn.net/topics/603891305", - "data/深入剖析Nginx/第03章 进程模型/3.7 信号处理/代码片段3.7.3-1-ngx_process.c": "https://bbs.csdn.net/topics/603891244", - "data/深入剖析Nginx/第03章 进程模型/3.6 slab 机制/代码片段3.6-3-ngx_cycle.c": "https://bbs.csdn.net/topics/603891189", - "data/深入剖析Nginx/第03章 进程模型/3.6 slab 机制/代码片段3.6-6-ngx_slab.c": "https://bbs.csdn.net/topics/603891190", - "data/深入剖析Nginx/第03章 进程模型/3.6 slab 机制/代码片段3.6-1-ngx_slab.c": "https://bbs.csdn.net/topics/603891086", - "data/深入剖析Nginx/第03章 进程模型/3.6 slab 机制/-.txt": "https://bbs.csdn.net/topics/603891306", - "data/深入剖析Nginx/第03章 进程模型/3.6 slab 机制/代码片段3.6-7-ngx_slab.c": "https://bbs.csdn.net/topics/603891245", - "data/深入剖析Nginx/第03章 进程模型/3.6 slab 机制/代码片段3.6-2-ngx_slab.c": "https://bbs.csdn.net/topics/603891087", - "data/深入剖析Nginx/第03章 进程模型/3.6 slab 机制/代码片段3.6-8-ngx_slab.c": "https://bbs.csdn.net/topics/603891246", - "data/深入剖析Nginx/第03章 进程模型/3.6 slab 机制/代码片段3.6-5-ngx_slab.c": "https://bbs.csdn.net/topics/603891191", - "data/深入剖析Nginx/第10章 请求定位/10.4 Location 的定位与使用/代码片段10.4-1-ngx_http_core_module.c": "https://bbs.csdn.net/topics/603891307", - "data/深入剖析Nginx/第10章 请求定位/10.5 未命名location 的使用/代码片段10.5-3-ngx_http_rewrite_module.c": "https://bbs.csdn.net/topics/603891089", - "data/深入剖析Nginx/第10章 请求定位/10.5 未命名location 的使用/-.txt": "https://bbs.csdn.net/topics/603891090", - "data/深入剖析Nginx/第10章 请求定位/10.5 未命名location 的使用/代码片段10.5-4-nginx.conf": "https://bbs.csdn.net/topics/603891192", - "data/深入剖析Nginx/第10章 请求定位/10.5 未命名location 的使用/代码片段10.5-1-ngx_http_core_module.c": "https://bbs.csdn.net/topics/603891193", - "data/深入剖析Nginx/第10章 请求定位/10.5 未命名location 的使用/代码片段10.5-6-ngx_http_proxy_module.c": "https://bbs.csdn.net/topics/603891194", - "data/深入剖析Nginx/第10章 请求定位/10.5 未命名location 的使用/代码片段10.5-2-ngx_http_rewrite_module.c": "https://bbs.csdn.net/topics/603891308", - "data/深入剖析Nginx/第10章 请求定位/10.5 未命名location 的使用/代码片段10.5-5-ngx_http_core_module.c": "https://bbs.csdn.net/topics/603891195", - "data/深入剖析Nginx/第10章 请求定位/10.1 Location 的生成/代码片段10.1-3-nginx.conf": "https://bbs.csdn.net/topics/603891247", - "data/深入剖析Nginx/第10章 请求定位/10.1 Location 的生成/代码片段10.1-1-ngx_http_core_module.c": "https://bbs.csdn.net/topics/603891091", - "data/深入剖析Nginx/第10章 请求定位/10.1 Location 的生成/代码片段10.1-2-nginx.conf": "https://bbs.csdn.net/topics/603891248", - "data/深入剖析Nginx/第10章 请求定位/10.6 try_files 指令/代码片段10.6-2-ngx_http_core_module.c": "https://bbs.csdn.net/topics/603891309", - "data/深入剖析Nginx/第10章 请求定位/10.6 try_files 指令/代码片段10.6-5-ngx_http_core_module.c": "https://bbs.csdn.net/topics/603891196", - "data/深入剖析Nginx/第10章 请求定位/10.6 try_files 指令/代码片段10.6-6-ngx_http_core_module.c": "https://bbs.csdn.net/topics/603891310", - "data/深入剖析Nginx/第10章 请求定位/10.6 try_files 指令/-.txt": "https://bbs.csdn.net/topics/603891092", - "data/深入剖析Nginx/第10章 请求定位/10.6 try_files 指令/代码片段10.6-4-ngx_http_core_module.c": "https://bbs.csdn.net/topics/603891249", - "data/深入剖析Nginx/第10章 请求定位/10.6 try_files 指令/代码片段10.6-3-ngx_http_core_module.c": "https://bbs.csdn.net/topics/603891197", - "data/深入剖析Nginx/第10章 请求定位/10.6 try_files 指令/代码片段10.6-1-nginx.conf": "https://bbs.csdn.net/topics/603891198", - "data/深入剖析Nginx/第10章 请求定位/10.2 Location 的整理/代码片段10.2-3-ngx_http.c": "https://bbs.csdn.net/topics/603891311", - "data/深入剖析Nginx/第10章 请求定位/10.2 Location 的整理/代码片段10.2-6-ngx_http.c": "https://bbs.csdn.net/topics/603891093", - "data/深入剖析Nginx/第10章 请求定位/10.2 Location 的整理/代码片段10.2-1-ngx_http.c": "https://bbs.csdn.net/topics/603891199", - "data/深入剖析Nginx/第10章 请求定位/10.2 Location 的整理/代码片段10.2-4-ngx_http.c": "https://bbs.csdn.net/topics/603891400", - "data/深入剖析Nginx/第10章 请求定位/10.2 Location 的整理/代码片段10.2-2-ngx_http.c": "https://bbs.csdn.net/topics/603891401", - "data/深入剖析Nginx/第10章 请求定位/10.2 Location 的整理/代码片段10.2-5-ngx_http.c": "https://bbs.csdn.net/topics/603891402", - "data/深入剖析Nginx/第10章 请求定位/10.3 Server 的定位/代码片段10.3-1-ngx_http_request.c": "https://bbs.csdn.net/topics/603891312", - "data/深入剖析Nginx/第10章 请求定位/10.3 Server 的定位/代码片段10.3-2-ngx_http_request.c": "https://bbs.csdn.net/topics/603891313", - "data/深入剖析Nginx/第10章 请求定位/10.3 Server 的定位/代码片段10.3-3-ngx_http_request.c": "https://bbs.csdn.net/topics/603891094", - "data/深入剖析Nginx/第12章 过滤模块/12.2 ngx_http_headers_filter_module/代码片段12.2.2-1-ngx_http_headers_filter_module.c": "https://bbs.csdn.net/topics/603891095", - "data/深入剖析Nginx/第12章 过滤模块/12.2 ngx_http_headers_filter_module/代码片段12.2.1-1-ngx_http_headers_filter_module.c": "https://bbs.csdn.net/topics/603891250", - "data/深入剖析Nginx/第12章 过滤模块/12.2 ngx_http_headers_filter_module/代码片段12.2.1-2-ngx_http_headers_filter_module.c": "https://bbs.csdn.net/topics/603891403", - "data/深入剖析Nginx/第12章 过滤模块/12.4 ngx_http_range_filter_module/代码片段12.4-1-ngx_http_range_filter_module.c": "https://bbs.csdn.net/topics/603891404", - "data/深入剖析Nginx/第12章 过滤模块/12.4 ngx_http_range_filter_module/代码片段12.4-2-ngx_http_range_filter_module.c": "https://bbs.csdn.net/topics/603891405", - "data/深入剖析Nginx/第12章 过滤模块/12.4 ngx_http_range_filter_module/代码片段12.4-3-ngx_http_range_filter_module.c": "https://bbs.csdn.net/topics/603891251", - "data/深入剖析Nginx/第12章 过滤模块/12.1 ngx_http_not_modified_filter_module/代码片段12.1.2-1-ngx_http_not_modified_filter_module.c": "https://bbs.csdn.net/topics/603891314", - "data/深入剖析Nginx/第12章 过滤模块/12.1 ngx_http_not_modified_filter_module/代码片段12.1.2-3-ngx_http_not_modified_filter_module.c": "https://bbs.csdn.net/topics/603891096", - "data/深入剖析Nginx/第12章 过滤模块/12.1 ngx_http_not_modified_filter_module/代码片段12.1.2-2-ngx_http_not_modified_filter_module.c": "https://bbs.csdn.net/topics/603891315", - "data/深入剖析Nginx/第12章 过滤模块/12.3 ngx_http_gzip_filter_module/代码片段12.3-1-ngx_http_gzip_filter_module.c": "https://bbs.csdn.net/topics/603891252", - "data/深入剖析Nginx/第12章 过滤模块/12.3 ngx_http_gzip_filter_module/代码片段12.3-3-ngx_http_gzip_filter_module.c": "https://bbs.csdn.net/topics/603891097", - "data/深入剖析Nginx/第12章 过滤模块/12.3 ngx_http_gzip_filter_module/代码片段12.3-4-ngx_http_gzip_filter_module.c": "https://bbs.csdn.net/topics/603891406", - "data/深入剖析Nginx/第12章 过滤模块/12.3 ngx_http_gzip_filter_module/代码片段12.3-2-ngx_http_gzip_filter_module.c": "https://bbs.csdn.net/topics/603891253", - "data/深入剖析Nginx/第14章 访问控制/14.1 禁止指定IP 访问/代码片段14.1-1-nginx.conf": "https://bbs.csdn.net/topics/603891098", - "data/深入剖析Nginx/第14章 访问控制/14.1 禁止指定IP 访问/代码片段14.1-4-ngx_http_access_module.c": "https://bbs.csdn.net/topics/603891407", - "data/深入剖析Nginx/第14章 访问控制/14.1 禁止指定IP 访问/代码片段14.1-2-ngx_http_access_module.c": "https://bbs.csdn.net/topics/603891316", - "data/深入剖析Nginx/第14章 访问控制/14.1 禁止指定IP 访问/代码片段14.1-2-nginx.conf": "https://bbs.csdn.net/topics/603891408", - "data/深入剖析Nginx/第14章 访问控制/14.1 禁止指定IP 访问/代码片段14.1-3-ngx_http_access_module.c": "https://bbs.csdn.net/topics/603891099", - "data/深入剖析Nginx/第14章 访问控制/14.3 其他访问控制措施/代码片段14.3.2-2-nginx.conf": "https://bbs.csdn.net/topics/603891409", - "data/深入剖析Nginx/第14章 访问控制/14.3 其他访问控制措施/代码片段14.3.1-1-nginx.conf": "https://bbs.csdn.net/topics/603891254", - "data/深入剖析Nginx/第14章 访问控制/14.3 其他访问控制措施/代码片段14.3.2-1-nginx.conf": "https://bbs.csdn.net/topics/603891500", - "data/深入剖析Nginx/第14章 访问控制/14.2 密码认证访问/代码片段14.2-2-ngx_http_auth_basic_module.c": "https://bbs.csdn.net/topics/603891410", - "data/深入剖析Nginx/第14章 访问控制/14.2 密码认证访问/代码片段14.2-7-ngx_http_auth_basic_module.c": "https://bbs.csdn.net/topics/603891317", - "data/深入剖析Nginx/第14章 访问控制/14.2 密码认证访问/代码片段14.2-4-ngx_http_auth_basic_module.c": "https://bbs.csdn.net/topics/603891501", - "data/深入剖析Nginx/第14章 访问控制/14.2 密码认证访问/代码片段14.2-5-ngx_http_auth_basic_module.c": "https://bbs.csdn.net/topics/603891255", - "data/深入剖析Nginx/第14章 访问控制/14.2 密码认证访问/代码片段14.2-3-ngx_http_core_module.c": "https://bbs.csdn.net/topics/603891502", - "data/深入剖析Nginx/第14章 访问控制/14.2 密码认证访问/代码片段14.2-6-ngx_crypt.c": "https://bbs.csdn.net/topics/603891411", - "data/深入剖析Nginx/第14章 访问控制/14.2 密码认证访问/代码片段14.2-1-nginx.conf": "https://bbs.csdn.net/topics/603891256", - "data/深入剖析Nginx/附录B/-nginx.conf": "https://bbs.csdn.net/topics/603891412", - "data/深入剖析Nginx/第13章 负载均衡/13.1 负载均衡策略/代码片段13.1-1-nginx.conf.fastcgi": "https://bbs.csdn.net/topics/603891503", - "data/深入剖析Nginx/第13章 负载均衡/13.1 负载均衡策略/代码片段13.1-2-ngx_http_upstream_ip_hash_module.c": "https://bbs.csdn.net/topics/603891257", - "data/深入剖析Nginx/第13章 负载均衡/13.1 负载均衡策略/代码片段13.1-3-ngx_http_upstream.c": "https://bbs.csdn.net/topics/603891318", - "data/深入剖析Nginx/第13章 负载均衡/13.2 加权轮询/代码片段13.2.1-6-ngx_http_upstream_round_robin.c": "https://bbs.csdn.net/topics/603891413", - "data/深入剖析Nginx/第13章 负载均衡/13.2 加权轮询/代码片段13.2.4-2-ngx_http_upstream.c": "https://bbs.csdn.net/topics/603891319", - "data/深入剖析Nginx/第13章 负载均衡/13.2 加权轮询/代码片段13.2.4-1-ngx_http_upstream_round_robin.c": "https://bbs.csdn.net/topics/603891414", - "data/深入剖析Nginx/第13章 负载均衡/13.2 加权轮询/代码片段13.2.2-3-ngx_http_upstream_round_robin.c": "https://bbs.csdn.net/topics/603891504", - "data/深入剖析Nginx/第13章 负载均衡/13.2 加权轮询/代码片段13.2.1-1-nginx.conf.fastcgi": "https://bbs.csdn.net/topics/603891320", - "data/深入剖析Nginx/第13章 负载均衡/13.2 加权轮询/代码片段13.2.1-2-ngx_http_upstream.h": "https://bbs.csdn.net/topics/603891258", - "data/深入剖析Nginx/第13章 负载均衡/13.2 加权轮询/代码片段13.2.3-1-ngx_http_upstream_round_robin.c": "https://bbs.csdn.net/topics/603891415", - "data/深入剖析Nginx/第13章 负载均衡/13.2 加权轮询/代码片段13.2.1-3-nginx.conf.fastcgi": "https://bbs.csdn.net/topics/603891505", - "data/深入剖析Nginx/第13章 负载均衡/13.2 加权轮询/代码片段13.2.2-2-ngx_http_upstream_round_robin.c": "https://bbs.csdn.net/topics/603891416", - "data/深入剖析Nginx/第13章 负载均衡/13.2 加权轮询/代码片段13.2.1-4-ngx_http_upstream_round_robin.c": "https://bbs.csdn.net/topics/603891259", - "data/深入剖析Nginx/第13章 负载均衡/13.2 加权轮询/代码片段13.2.2-1-ngx_http_upstream_round_robin.c": "https://bbs.csdn.net/topics/603891321", - "data/深入剖析Nginx/第13章 负载均衡/13.2 加权轮询/代码片段13.2.1-5-nginx.conf.fastcgi": "https://bbs.csdn.net/topics/603891323", - "data/深入剖析Nginx/第13章 负载均衡/13.3 IP 哈希/代码片段13.3-1-ngx_http_upstream_ip_hash_module.c": "https://bbs.csdn.net/topics/603891260", - "data/深入剖析Nginx/第13章 负载均衡/13.3 IP 哈希/代码片段13.3-2-ngx_http_upstream_ip_hash_module.c": "https://bbs.csdn.net/topics/603891417", - "data/深入剖析Nginx/第13章 负载均衡/13.3 IP 哈希/代码片段13.3-3-ngx_http_upstream_ip_hash_module.c": "https://bbs.csdn.net/topics/603891261" -} \ No newline at end of file diff --git a/main.py b/main.py deleted file mode 100644 index b8fe0f2c18e21eab1b26880e1368c418a0dd8032..0000000000000000000000000000000000000000 --- a/main.py +++ /dev/null @@ -1,9 +0,0 @@ -from src.ebook.extract_book_code import extract_code -from src.ebook.community import send_topic - -if __name__ == "__main__": - # extract_code() - web_url = 'https://gitcode.net/csdn/content/book_id_08fd0c7025a4a34a97a29897b067d24/-/tree/master/' - print('-------' * 20) - print('开始向社区发帖') - send_topic(web_url) \ No newline at end of file diff --git a/src/ebook/community.py b/src/ebook/community.py deleted file mode 100644 index e0467f3b7f8cfa08ef88ed37f285785f93421321..0000000000000000000000000000000000000000 --- a/src/ebook/community.py +++ /dev/null @@ -1,128 +0,0 @@ -import os -import json -import html -import requests -import logging - -logger = logging.getLogger(__name__) - - -def get_files_path(file_dir, filetype='.txt'): - """得到文件夹下的所有.txt文件的路径 - Args: - file_dir: 文件夹路径 - filetype: 文件后缀 - Returns: - 所有filetype类型文件的绝对路径 - """ - files_path = [] - for root, dirs, files in os.walk(file_dir): - for file in files: - if filetype is None or (os.path.splitext(file)[1] == filetype): - files_path.append(os.path.join(root, file)) - return files_path - - -def get_all_files(current_address): - files = [] - for parent, dirnames, filenames in os.walk(current_address): - # Case1: traversal the directories - # for dirname in dirnames: - # print("Parent folder:", parent) - # print("Dirname:", dirname) - # # Case2: traversal the files - for filename in filenames: - # print("Parent folder:", parent) - file_path = os.path.join(parent, filename) - files.append(file_path) - return files - - -def post(url, params, retry=3, headers=None): - if headers is None: - hdrs = {"Content-Type": "application/json"} - else: - hdrs = headers - fails = 0 - while fails < retry: - try: - if headers is None: - data = json.dumps(params) - else: - data = params - logger.debug(f"will post {data} to {url}") - resp = requests.post(url, data, headers=hdrs, timeout=10) - if resp: - logger.info(f"resp {resp.content}") - return resp.json() - else: - logger.error(f"resp: [{resp}]") - fails += 1 - except Exception as error: - logger.error(f"post {params} to {url} failed {error}") - fails += 1 - if fails > retry: - raise error - - -def send_topic(web_url): - data_dir = 'data' - book_dir = 'data/深入剖析Nginx/' - # web_url = "https://codechina.csdn.net/csdn/book_code_c798a5992a654857867ec15660e1c32a/-/blob/master/" - request_url = 'http://ccloud.internal.csdn.net/v1/internal/community/content/sendTopic' - - # files = get_files_path('data/全程软件测试(第3版)', '.java') - - files = get_all_files(book_dir) - print(files) - - mapping_path = 'data/深入剖析Nginx.json' - - if not os.path.exists(mapping_path): - chapter_code_mapping = {} - save_mapping = json.dumps(chapter_code_mapping, - ensure_ascii=False, - indent=2) - with open(mapping_path, 'w') as f: - f.write(save_mapping) - - with open(mapping_path, 'r') as f: - chapter_code_mapping = json.load(f) - - for file in files: - topic_title = file.replace(book_dir, '') - topic_title = topic_title.replace('/', '|') - topic_title = topic_title.replace(' ', '.') - # topic_title = html.escape(topic_title) - topic_content = web_url + file - topic_content = "代码:{}".format( - topic_content, topic_title) - - print(topic_title) - - send_topic_request_param = { - "type": "long_text", - "cateId": 20966, - "content": topic_content, - "topicTitle": topic_title, - "mdContent": topic_content, - "communityId": 3821, - "loginUserName": "BBS_Assistant", - "bizNo": "ebook" - } - - if chapter_code_mapping.get(file) is None: - resp = post(request_url, send_topic_request_param) - topic_link = resp['data']['content']['url'] - chapter_code_mapping[file] = topic_link - print('{}:{}'.format(file, topic_link)) - save_mapping = json.dumps(chapter_code_mapping, - ensure_ascii=False, - indent=2) - with open(mapping_path, 'w') as f: - f.write(save_mapping) - else: - send_topic_request_param['id'] = int( - chapter_code_mapping[file].split('/')[-1]) - resp = post(request_url, send_topic_request_param) - print('{}:{}'.format(file, chapter_code_mapping.get(file))) diff --git a/src/ebook/ebook_get_request.py b/src/ebook/ebook_get_request.py deleted file mode 100644 index 7ae2ce9d5ded35cacc1b6c20aa7a2bda04020d69..0000000000000000000000000000000000000000 --- a/src/ebook/ebook_get_request.py +++ /dev/null @@ -1,44 +0,0 @@ -import json -import requests -import logging - - -logger = logging.getLogger(__name__) - - -def get_chapter_content(params): - url = 'http://192.168.50.117:9003/v1/chapter/content' - - headers = { - "Cookie":"UserToken=149ba8a7a8d341bbbe41f904c4c9b176;UserName=xiuxiuyayayy" - } - - result = requests.get(url=url, params=params, headers=headers) - - if result.status_code == 200: - ret = json.loads(result.text) - logger.info('request success') - content = ret['data'] - return content - else: - logger.info('request failed!!!!!') - return {} - - -def get_chapter_list(params): - url = 'http://192.168.50.117:9003/inner/v1/chapter/list' - - headers = { - "Cookie":"UserToken=149ba8a7a8d341bbbe41f904c4c9b176;UserName=xiuxiuyayayy" - } - - result = requests.get(url=url, params=params, headers=headers) - - if result.status_code == 200: - ret = json.loads(result.text) - logger.info('request success') - content = ret['data'] - return content - else: - logger.info('request failed!!!!!') - return {} \ No newline at end of file diff --git a/src/ebook/extract_book_code.py b/src/ebook/extract_book_code.py deleted file mode 100644 index 91ffca6a1e4670ab4a5a1b15e04ae9bd4219737e..0000000000000000000000000000000000000000 --- a/src/ebook/extract_book_code.py +++ /dev/null @@ -1,157 +0,0 @@ -import json -import os -import re -import html -from bs4 import BeautifulSoup -from .get_book_chapter_id_list import get_chapter_id_list -from .ebook_get_request import get_chapter_content - - -def extract_code(): - - # book_mapping_path = "data/book_mapping.json" - # with open(book_mapping_path, "r") as f: - # book_mapping = json.load(f) - book_mapping = { - "深入剖析Nginx": "608fd0c7025a4a34a97a29897b067d24", - } - for book_idx, book_name in enumerate(book_mapping.keys()): - book_dir_name = book_name - book_dir = os.path.join('data', book_dir_name) - if not os.path.exists(book_dir): - os.mkdir(book_dir) - # print(book_dir_name) - book_id = book_mapping[book_name] - request_get_chapter_id_list_params = {"bookId": book_id, "is_main": 1} - chapter_id_list = get_chapter_id_list( - request_get_chapter_id_list_params) - # print(chapter_id_list) - for chapter_id in chapter_id_list: - request_get_chapter_content_params = { - 'bookId': book_id, - 'chapterId': chapter_id - } - chapter_resp = get_chapter_content( - request_get_chapter_content_params) - chapter_name = chapter_resp['name'] - chapter_content = chapter_resp['content'] - try: - if book_name == "零基础学机器学习": - chapter_num = re.findall(r'第(.*)课', chapter_name)[0] - chapter_name_modify = re.sub( - r'第(.*)课', r'第{}课'.format(chapter_num.zfill(2)), - chapter_name) - else: - chapter_num = re.findall(r'第(.*)章', chapter_name)[0] - chapter_name_modify = re.sub( - r'第(.*)章', r'第{}章'.format(chapter_num.zfill(2)), - chapter_name) - chapter_name = chapter_name_modify - except: - # print('该章节没有章节序号: {}'.format(chapter_name)) - pass - chapter_dir = os.path.join(book_dir, chapter_name) - if not os.path.exists(chapter_dir): - os.mkdir(chapter_dir) - # print('创建文件夹: {}'.format(chapter_dir)) - - chapter_content = html.unescape(chapter_content) - # print(chapter_content) - - if book_name == "深入剖析Nginx": - section_list = re.findall(r'(.*?)', - chapter_content, - flags=re.S) - - # print(section_list) - section_content_list = re.split(r'.*?', - chapter_content, - flags=re.S) - section_dir_list = [] - for section in section_list: - section = section.replace(' ', ' ') - if section.find(r'/') != -1: - section = section.replace('/', '') - section_dir = os.path.join(chapter_dir, section) - # print(section_dir) - if not os.path.exists(section_dir): - os.mkdir(section_dir) - section_dir_list.append(section_dir) - for idx, section_content in enumerate(section_content_list): - if idx == 0: - html_save_path = os.path.join(chapter_dir, 'text.html') - else: - html_save_path = os.path.join( - section_dir_list[idx - 1], 'text.html') - # with open(html_save_path, 'w', encoding='utf-8') as f: - # f.write(section_content) - - code_list = re.findall( - r'(?:(?:

\d{1,5}\:.*? \n).*?)*', - section_content, - flags=re.S) - - res_codelist = [] - for code in code_list: - if code != '': - res_codelist.append(code) - # print(res_codelist) - # break - count = 0 - for code in res_codelist: - code = html.unescape(code) - soup = BeautifulSoup(code) - clean_code = soup.get_text() - print(clean_code) - - print('-------' * 10) - pianduan_name = re.findall(r'(代码片段.*),', clean_code) - if pianduan_name == []: - pianduan_name_str = '' - else: - pianduan_name_str = pianduan_name[0] - file_name_list = re.findall(r'文件名: (.*)\n', clean_code) - print(file_name_list) - if file_name_list == []: - file_name = '.txt' - else: - file_name = file_name_list[0] - file_name = file_name.replace('/', '-') - save_file_name = pianduan_name_str + '-' + file_name - # print(save_file_name) - - if idx == 0: - code_save_path = os.path.join( - chapter_dir, save_file_name) - else: - count += 1 - code_save_path = os.path.join( - section_dir_list[idx - 1], save_file_name) - - res_code_list = [] - for line in clean_code.split('\n'): - if line.find('文件名') != -1 or line.find( - '代码片段') != -1 or line == '': - continue - clean_line = re.findall(r'^\d{1,5}\: *(.*)', - line)[0] - res_code_list.append(clean_line) - res_code = '\n'.join(res_code_list) - - with open(code_save_path, 'w', encoding='utf-8') as f: - f.write(res_code) - - # clean_text_list = [] - # for line in res_str.split('\n'): - # if line == '': - # continue - # if line[0].isdigit(): - # line = re.findall(r'^[0-9]+ {0,2}(.*)', - # line)[0] - # # print(line) - # else: - # if line.startswith('>>'): - # break - # clean_text_list.append(line) - # clean_code = '\n'.join(clean_text_list) - # print(clean_code) diff --git a/src/ebook/get_book_chapter_id_list.py b/src/ebook/get_book_chapter_id_list.py deleted file mode 100644 index 6fd1ad532de8862b3e2121fa08d35ef6d5ef3d74..0000000000000000000000000000000000000000 --- a/src/ebook/get_book_chapter_id_list.py +++ /dev/null @@ -1,18 +0,0 @@ -import json -import re -import html -import nltk -import html2text -import os -import pandas as pd -from bs4 import BeautifulSoup -from .ebook_get_request import get_chapter_list - - -def get_chapter_id_list(param): - chapter_list = [] - ret = get_chapter_list(param) - for item in ret: - chapterid = item['chapterid'] - chapter_list.append(chapterid) - return chapter_list