├── README.agent.markdown ├── README.md └── README_old.md /README_old.md: -------------------------------------------------------------------------------- 1 | 谁写哪个章节,大家在相应章节目录标记一下 网名+日期。 2 | 谁审哪个章节,大家在相应章节目录标记一下 网名(√)。 3 | 4 | ``` 5 | * [Name](#name) -> * [Name 某某 2015.8.4](doc/name.md) 6 | * [Name 某某 2015.8.4](doc/name.md) -> * [Name 某某 2015.8.4 某某(√)](doc/name.md) 7 | ``` 8 | 9 | 章节写好后,存放到`doc`目录下。章节命名用具体小节的锚点名称。例如`Code Repository`章节,存放路径就应是`doc/code-repository.md`。 10 | 11 | 通过`grep`命令,看以看到更多内部注释信息,方便内部人员进行交流、协作。参考: 12 | 13 | ```shell 14 | # cd doc 15 | # find *.md | xargs grep "<\!\-\-" 16 | 17 | init_by_lua.md:基本上,在这个上下文中,你可以保 。。。 18 | name.md:此模块属第三方扩展,不在NGINX源码中。安装介绍。。。 19 | todo.md: 20 | # 21 | ``` 22 | 23 | 有任何疑问,可以随时联系我。翻译交流QQ群:435558580 。 24 | 25 | 版本更新:This document describes ngx_lua [v0.9.20](https://github.com/openresty/lua-nginx-module/tags) released on 19 December 2015. 26 | 27 | Table of Contents 28 | ================= 29 | 30 | * [Name yuansheng-8.4 WenMing(√)](doc/name.md) 31 | * [Status yuansheng-8.6 WenMing(√)](doc/status.md) 32 | * [Version](#version) 33 | * [Synopsis yuansheng-8.6 WenMing(√)](doc/synopsis.md) 34 | * [Description yuansheng-8.16 WenMing(√)](doc/description.md) 35 | * [Typical Uses yuansheng-8.16 WenMing(√)](doc/typical-uses.md) 36 | * [NGINX Compatibility yuansheng-8.17 WenMing(√)](doc/nginx-compatibility.md) 37 | * [Installation yuansheng-8.17 WenMing(√)](doc/installation.md) 38 | * [C Macro Configurations yuansheng-8.17 WenMing(√)](doc/c-macro-configurations.md) 39 | * [Installation on Ubuntu 11.10 yuansheng-8.18 WenMing(√)](doc/installation-on-ubuntu-1110.md) 40 | * [Community](#community) 41 | * [English Mailing List](#english-mailing-list) 42 | * [Chinese Mailing List](#chinese-mailing-list) 43 | * [Code Repository yuansheng-8.20 WenMing(√)](doc/code-repository.md) 44 | * [Bugs and Patches yuansheng-8.20 WenMing(√)](doc/bugs-and-patches.md) 45 | * [Lua/LuaJIT bytecode support yuansheng-8.31 WenMing(√)](doc/lualuajit-bytecode-support.md) 46 | * [System Environment Variable Support yuansheng-9.1 WenMing(√)](doc/system-environment-variable-support.md) 47 | * [HTTP 1.0 support lance-2015.8.13 WenMing(√)](doc/http-10-support.md) 48 | * [Statically Linking Pure Lua Modules yuansheng-9.1 WenMing(√)](doc/statically-linking-pure-lua-modules.md) 49 | * [NGINX Worker内的数据共享 lance-2015.8.5 WenMing(√)](doc/data-sharing-within-an-nginx-worker.md) 50 | * [Known Issues](#known-issues) 51 | * [TCP socket connect operation issues yuansheng-9.2](doc/tcp-socket-connect-operation-issues.md) 52 | * [Lua Coroutine Yielding/Resuming yuansheng-9.2](doc/lua-coroutine-yieldingresuming.md) 53 | * [Lua Variable Scope yuansheng-9.2](doc/lua-variable-scope.md) 54 | * [Locations Configured by Subrequest Directives of Other Modules lance-2015.8.12](doc/locations-configured-by-subrequest-directives-of-other-modules.md) 55 | * [Cosockets Not Available Everywhere yuansheng-9.2](doc/cosockets-not-available-everywhere.md) 56 | * [特别转义序列 lance-2015.8.5](doc/special-escaping-sequences.md) 57 | * [Mixing with SSI Not Supported yuansheng-9.2](doc/mixing-with-ssi-not-supported.md) 58 | * [SPDY Mode Not Fully Supported yuansheng-9.2](doc/spdy-mode-not-fully-supported.md) 59 | * [Missing data on short circuited requests yuansheng-9.2](doc/missing-data-on-short-circuited-requests.md) 60 | * [TODO yuansheng-9.3](doc/todo.md) 61 | * [Changes yuansheng-9.3 WenMing(√)](doc/changes.md) 62 | * [Test Suite yuansheng-9.3](doc/test-suite.md) 63 | * [Copyright and License yuansheng-9.3](doc/copyright-and-license.md) 64 | * [See Also yuansheng-9.3](doc/see-also.md) 65 | * [Directives yuansheng-9.3](doc/directives.md) 66 | * [NGINX API for Lua yuansheng-9.3](doc/nginx-api-for-lua.md) 67 | * [Obsolete Sections yuansheng-9.3](doc/obsolete-sections.md) 68 | * [Special PCRE Sequences yuansheng-9.3](doc/special-pcre-sequences.md) 69 | 70 | Directives 71 | ========== 72 | 73 | * [lua_use_default_type hambut 2015.8.5 WenMing(√)](doc/lua-use-default-type.md) 74 | * [lua_code_cache hambut 2015.8.5](doc/lua-code-cache.md) 75 | * [lua_regex_cache_max_entries yuansheng-9.3](doc/lua_regex_cache_max_entries.md) 76 | * [lua_regex_match_limit yuansheng-9.3](doc/lua_regex_match_limit.md) 77 | * [lua_package_path yuansheng-9.4](doc/lua_package_path.md) 78 | * [lua_package_cpath yuansheng-9.4](doc/lua_package_cpath.md) 79 | * [init_by_lua yuansheng-9.4](doc/init_by_lua.md) 80 | * [init_by_lua_block yuansheng-11.1](doc/init_by_lua_block.md) 81 | * [init_by_lua_file yuansheng-9.4](doc/init_by_lua_file.md) 82 | * [init_worker_by_lua yuansheng-9.6](doc/init_worker_by_lua.md) 83 | * [init_worker_by_lua_block yuansheng-11.1](doc/init_worker_by_lua_block.md) 84 | * [init_worker_by_lua_file yuansheng-9.6](doc/init_worker_by_lua_file.md) 85 | * [set_by_lua yuansheng-9.6](doc/set_by_lua.md) 86 | * [set_by_lua_block yuansheng-11.1](doc/set_by_lua_block.md) 87 | * [set_by_lua_file yuansheng-9.6](doc/set_by_lua_file.md) 88 | * [content_by_lua dengshiyong 2015.8.12 WenMing(√)](doc/content_by_lua.md) 89 | * [content_by_lua_block yuansheng-11.1](doc/content_by_lua_block.md) 90 | * [content_by_lua_file yuansheng-9.19](doc/content_by_lua_file.md) 91 | * [rewrite_by_lua yuansheng-9.19](doc/rewrite_by_lua.md) 92 | * [rewrite_by_lua_block yuansheng-11.1](doc/rewrite_by_lua_block.md) 93 | * [rewrite_by_lua_file yuansheng-9.19](doc/rewrite_by_lua_file.md) 94 | * [access_by_lua yuansheng-9.27](doc/access_by_lua.md) 95 | * [access_by_lua_block yuansheng-11.1](doc/access_by_lua_block.md) 96 | * [access_by_lua_file yuansheng-9.28](doc/access_by_lua_file.md) 97 | * [header_filter_by_lua liujinxuan 2015.9.1](doc/header_filter_by_lua.md) 98 | * [header_filter_by_lua_block yuansheng-11.1](doc/header_filter_by_lua_block.md) 99 | * [header_filter_by_lua_file yuansheng-9.28](doc/header_filter_by_lua_file.md) 100 | * [body_filter_by_lua yuansheng-9.28](doc/body_filter_by_lua.md) 101 | * [body_filter_by_lua_block yuansheng-11.1](doc/body_filter_by_lua_block.md) 102 | * [body_filter_by_lua_file yuansheng-9.28](doc/body_filter_by_lua_file.md) 103 | * [log_by_lua yuansheng-9.28](doc/log_by_lua.md) 104 | * [log_by_lua_block yuansheng-11.1](doc/log_by_lua_block.md) 105 | * [log_by_lua_file yuansheng-9.28](doc/log_by_lua_file.md) 106 | * [balancer_by_lua_block](doc/balancer_by_lua_block.md) 107 | * [balancer_by_lua_file](doc/balancer_by_lua_file.md) 108 | * [lua_need_request_body yuansheng-9.28](doc/lua_need_request_body.md) 109 | * [ssl_certificate_by_lua_block](#ssl_certificate_by_lua_block) 110 | * [ssl_certificate_by_lua_file](#ssl_certificate_by_lua_file) 111 | * [lua_shared_dict lance-2015.8.20](doc/lua_shared_dict.md) 112 | * [lua_socket_connect_timeout yuansheng-9.28](doc/lua_socket_connect_timeout.md) 113 | * [lua_socket_send_timeout yuansheng-9.28](doc/lua_socket_send_timeout.md) 114 | * [lua_socket_send_lowat yuansheng-9.28](doc/lua_socket_send_lowat.md) 115 | * [lua_socket_read_timeout yuansheng-9.28](doc/lua_socket_read_timeout.md) 116 | * [lua_socket_buffer_size yuansheng-9.28](doc/lua_socket_buffer_size.md) 117 | * [lua_socket_pool_size yuansheng-9.28](doc/lua_socket_pool_size.md) 118 | * [lua_socket_keepalive_timeout yuansheng-9.28](doc/lua_socket_keepalive_timeout.md) 119 | * [lua_socket_log_errors yuansheng-9.28](doc/lua_socket_log_errors.md) 120 | * [lua_ssl_ciphers yuansheng-9.29](doc/lua_ssl_ciphers.md) 121 | * [lua_ssl_crl yuansheng-9.29](doc/lua_ssl_crl.md) 122 | * [lua_ssl_protocols yuansheng-9.29](doc/lua_ssl_protocols.md) 123 | * [lua_ssl_trusted_certificate yuansheng-9.29](doc/lua_ssl_trusted_certificate.md) 124 | * [lua_ssl_verify_depth yuansheng-9.29](doc/lua_ssl_verify_depth.md) 125 | * [lua_http10_buffering yuansheng-9.29](doc/lua_http10_buffering.md) 126 | * [rewrite_by_lua_no_postpone yuansheng-9.29](doc/rewrite_by_lua_no_postpone.md) 127 | * [access_by_lua_no_postpone yuansheng-12.19](doc/access_by_lua_no_postpone.md) 128 | * [lua_transform_underscores_in_response_headers yuansheng-9.29](doc/lua_transform_underscores_in_response_headers.md) 129 | * [lua_check_client_abort yuansheng-9.29](doc/lua_check_client_abort.md) 130 | * [lua_max_pending_timers yuansheng-9.29](doc/lua_max_pending_timers.md) 131 | * [lua_max_running_timers yuansheng-9.29](doc/lua_max_running_timers.md) 132 | 133 | NGINX API for Lua 134 | ================= 135 | 136 | * [Introduction lance-2015.9.6 WenMing(√)](doc/introduction.md) 137 | * [ngx.arg lance-2015.8.19 WenMing(√)](doc/ngxarg.md) 138 | * [ngx.var.VARIABLE lance-2015.8.19](doc/ngxvarvariable.md) 139 | * [Core constants lance-2015.8.14 WenMing(√)](doc/core-constants.md) 140 | * [HTTP method constants lance-2015.8.13](doc/http-method-constants.md) 141 | * [HTTP status constants lance-2015.8.13](doc/http-status-constants.md) 142 | * [NGINX log level constants lance-2015.8.13](doc/nginx-log-level-constants.md) 143 | * [print lance-2015.8.14](doc/print.md) 144 | * [ngx.ctx lance-2015.8.14](doc/ngxctx.md) 145 | * [ngx.location.capture lance-2015.8.11](doc/ngxlocationcapture.md) 146 | * [ngx.location.capture_multi lance-2015.8.11](doc/ngxlocationcapture_multi.md) 147 | * [ngx.status lance-2015.8.18 yuansheng(√)](doc/ngxstatus.md) 148 | * [ngx.header.HEADER lance-2015.9.6 yuansheng(√)](doc/ngxheaderheader.md) 149 | * [ngx.resp.get_headers lance-2015.9.7 yuansheng(√)](doc/ngxrespget_headers.md) 150 | * [ngx.req.is_internal yuansheng-2015.12.19](doc/ngxreqis_internal.md) 151 | * [ngx.req.start_time lance-2015.9.9 yuansheng(√)](doc/ngxreqstart_time.md) 152 | * [ngx.req.http_version lance-2015.9.9 yuansheng(√)](doc/ngxreqhttp_version.md) 153 | * [ngx.req.raw_header lance-2015.9.9 yuansheng(√)](doc/ngxreqraw_header.md) 154 | * [ngx.req.get_method lance-2015.9.9 yuansheng(√)](doc/ngxreqget_method.md) 155 | * [ngx.req.set_method lance-2015.9.9 yuansheng(√)](doc/ngxreqset_method.md) 156 | * [ngx.req.set_uri lance-2015.9.9](doc/ngxreqset_uri.md) 157 | * [ngx.req.set_uri_args lance-2015.9.10](doc/ngxreqset_uri_args.md) 158 | * [ngx.req.get_uri_args lance-2015.9.10](doc/ngxreqget_uri_args.md) 159 | * [ngx.req.get_post_args lance-2015.9.10](doc/ngxreqget_post_args.md) 160 | * [ngx.req.get_headers lance-2015.9.11](doc/ngxreqget_headers.md) 161 | * [ngx.req.set_header lance-2015.9.14](doc/ngxreqset_header.md) 162 | * [ngx.req.clear_header lance-2015.9.14](doc/ngxreqclear_header.md) 163 | * [ngx.req.read_body lance-2015.9.16](doc/ngxreqread_body.md) 164 | * [ngx.req.discard_body lance-2015.9.24](doc/ngxreqdiscard_body.md) 165 | * [ngx.req.get_body_data lance-2015.9.24](doc/ngxreqget_body_data.md) 166 | * [ngx.req.get_body_file lance-2015.9.28](doc/ngxreqget_body_file.md) 167 | * [ngx.req.set_body_data lance-2015.9.28](doc/ngxreqset_body_data.md) 168 | * [ngx.req.set_body_file lance-2015.9.28](doc/ngxreqset_body_file.md) 169 | * [ngx.req.init_body lance-2015.9.28](doc/ngxreqinit_body.md) 170 | * [ngx.req.append_body lance-2015.9.28](doc/ngxreqappend_body.md) 171 | * [ngx.req.finish_body lance-2015.9.28](doc/ngxreqfinish_body.md) 172 | * [ngx.req.socket yuansheng-10.12](doc/ngxreqsocket.md) 173 | * [ngx.exec yuansheng-10.12](doc/ngxexec.md) 174 | * [ngx.redirect yuansheng-10.12](doc/ngxredirect.md) 175 | * [ngx.send_headers yuansheng-10.12](doc/ngxsend_headers.md) 176 | * [ngx.headers_sent yuansheng-10.12](doc/ngxheaders_sent.md) 177 | * [ngx.print lance-2015.8.7 WenMing(√)](doc/ngxprint.md) 178 | * [ngx.say lance-2015.8.7 WenMing(√)](doc/ngxsay.md) 179 | * [ngx.log lance-2015.8.13 WenMing(√)](doc/ngxlog.md) 180 | * [ngx.flush lance-2015.8.13](doc/ngxflush.md) 181 | * [ngx.exit lance-2015.8.13](doc/ngxexit.md) 182 | * [ngx.eof lance-2015.8.18](doc/ngxeof.md) 183 | * [ngx.sleep lance-2015.8.18](doc/ngxsleep.md) 184 | * [ngx.escape_uri lance-2015.8.18](doc/ngxescape_uri.md) 185 | * [ngx.unescape_uri lance-2015.8.18](doc/ngxunescape_uri.md) 186 | * [ngx.encode_args lance-2015.8.18](doc/ngxencode_args.md) 187 | * [ngx.decode_args lance-2015.8.18](doc/ngxdecode_args.md) 188 | * [ngx.encode_base64 hambut-2015.9.9](doc/ngxencode_base64.md) 189 | * [ngx.decode_base64 hambut-2015.9.9](doc/ngxdecode_base64.md) 190 | * [ngx.crc32_short hambut-2015.9.9](doc/ngxcrc32_short.md) 191 | * [ngx.crc32_long hambut-2015.9.9](doc/ngxcrc32_long.md) 192 | * [ngx.hmac_sha1 hambut-2015.9.9](doc/ngxhmac_sha1.md) 193 | * [ngx.md5 hambut-2015.9.9](doc/ngxmd5.md) 194 | * [ngx.md5_bin hambut-2015.9.9](doc/ngxmd5_bin.md) 195 | * [ngx.sha1_bin hambut-2015.9.9](doc/ngxsha1_bin.md) 196 | * [ngx.quote_sql_str hambut-2015.9.9](doc/ngxquote_sql_str.md) 197 | * [ngx.today bells-2015.8.8](doc/ngxtoday.md) 198 | * [ngx.time bells-2015.8.22](doc/ngxtime.md) 199 | * [ngx.now bells-2015.8.22](doc/ngxnow.md) 200 | * [ngx.update_time bells-2015.8.16](doc/ngxupdate_time.md) 201 | * [ngx.localtime bells-2015.8.22](doc/ngxlocaltime.md) 202 | * [ngx.utctime bells-2015.8.22](doc/ngxutctime.md) 203 | * [ngx.cookie_time yuansheng-10.12](doc/ngxcookie_time.md) 204 | * [ngx.http_time yuansheng-10.10](doc/ngxhttp_time.md) 205 | * [ngx.parse_http_time yuansheng-10.10](doc/ngxparse_http_time.md) 206 | * [ngx.is_subrequest yuansheng-10.8](doc/ngxis_subrequest.md) 207 | * [ngx.re.match lance-2015.8.6](doc/ngxrematch.md) 208 | * [ngx.re.find lance-2015.8.6](doc/ngxrefind.md) 209 | * [ngx.re.gmatch lance-2015.8.6](doc/ngxregmatch.md) 210 | * [ngx.re.sub lance-2015.8.6](doc/ngxresub.md) 211 | * [ngx.re.gsub lance-2015.8.6](doc/ngxregsub.md) 212 | * [ngx.shared.DICT lance-2015.8.10](doc/ngxshareddict.md) 213 | * [ngx.shared.DICT.get lance-2015.8.10](doc/ngxshareddictget.md) 214 | * [ngx.shared.DICT.get_stale lance-2015.8.10](doc/ngxshareddictget_stale.md) 215 | * [ngx.shared.DICT.set lance-2015.8.10](doc/ngxshareddictset.md) 216 | * [ngx.shared.DICT.safe_set lance-2015.8.10](doc/ngxshareddictsafe_set.md) 217 | * [ngx.shared.DICT.add lance-2015.8.10](doc/ngxshareddictadd.md) 218 | * [ngx.shared.DICT.safe_add lance-2015.8.10](doc/ngxshareddictsafe_add.md) 219 | * [ngx.shared.DICT.replace lance-2015.8.10](doc/ngxshareddictreplace.md) 220 | * [ngx.shared.DICT.delete lance-2015.8.10](doc/ngxshareddictdelete.md) 221 | * [ngx.shared.DICT.incr lance-2015.8.10](doc/ngxshareddictincr.md) 222 | * [ngx.shared.DICT.flush_all lance-2015.8.10](doc/ngxshareddictflush_all.md) 223 | * [ngx.shared.DICT.flush_expired lance-2015.8.10](doc/ngxshareddictflush_expired.md) 224 | * [ngx.shared.DICT.get_keys lance-2015.8.10](doc/ngxshareddictget_keys.md) 225 | * [ngx.socket.udp yuansheng-10.8](doc/ngxsocketudp.md) 226 | * [udpsock:setpeername yuansheng-10.8](doc/udpsocksetpeername.md) 227 | * [udpsock:send yuansheng-10.8](doc/udpsocksend.md) 228 | * [udpsock:receive yuansheng-10.8](doc/udpsockreceive.md) 229 | * [udpsock:close yuansheng-10.8](doc/udpsockclose.md) 230 | * [udpsock:settimeout yuansheng-10.8](doc/udpsocksettimeout.md) 231 | * [ngx.socket.tcp yuansheng-10.7](doc/ngxsockettcp.md) 232 | * [tcpsock:connect yuansheng-10.7](doc/tcpsockconnect.md) 233 | * [tcpsock:sslhandshake yuansheng-10.7](doc/tcpsocksslhandshake.md) 234 | * [tcpsock:send yuansheng-10.7](doc/tcpsocksend.md) 235 | * [tcpsock:receive yuansheng-10.5](doc/tcpsockreceive.md) 236 | * [tcpsock:receiveuntil yuansheng-10.5](doc/tcpsockreceiveuntil.md) 237 | * [tcpsock:close yuansheng-10.5](doc/tcpsockclose.md) 238 | * [tcpsock:settimeout yuansheng-10.5](doc/tcpsocksettimeout.md) 239 | * [tcpsock:setoption yuansheng-10.5](doc/tcpsocksetoption.md) 240 | * [tcpsock:setkeepalive yuansheng-10.5](doc/tcpsocksetkeepalive.md) 241 | * [tcpsock:getreusedtimes yuansheng-10.5](doc/tcpsockgetreusedtimes.md) 242 | * [ngx.socket.connect yuansheng-10.4](doc/ngxsocketconnect.md) 243 | * [ngx.get_phase yuansheng-10.2](doc/ngxget_phase.md) 244 | * [ngx.thread.spawn yuansheng-10.2](doc/ngxthreadspawn.md) 245 | * [ngx.thread.wait yuansheng-10.4](doc/ngxthreadwait.md) 246 | * [ngx.thread.kill yuansheng-10.4](doc/ngxthreadkill.md) 247 | * [ngx.on_abort yuansheng-10.2](doc/ngxon_abort.md) 248 | * [ngx.timer.at yuansheng-10.1](doc/ngxtimerat.md) 249 | * [ngx.timer.running_count yuansheng-12.9](doc/ngxtimerrunning_count.md) 250 | * [ngx.timer.pending_count yuansheng-12.9](doc/ngxtimerpending_count.md) 251 | * [ngx.config.debug yuansheng-9.30](doc/ngxconfigdebug.md) 252 | * [ngx.config.prefix yuansheng-9.30](doc/ngxconfigprefix.md) 253 | * [ngx.config.nginx_version yuansheng-9.30](doc/ngxconfignginx_version.md) 254 | * [ngx.config.nginx_configure yuansheng-9.30](doc/ngxconfignginx_configure.md) 255 | * [ngx.config.ngx_lua_version yuansheng-9.30](doc/ngxconfigngx_lua_version.md) 256 | * [ngx.worker.exiting yuansheng-9.30](doc/ngxworkerexiting.md) 257 | * [ngx.worker.pid yuansheng-9.30](doc/ngxworkerpid.md) 258 | * [ngx.worker.count yuansheng-12.19](doc/ngxworkercount.md) 259 | * [ngx.worker.id yuansheng-12.19](doc/ngxworkerid.md) 260 | * [ngx.semaphore yuansheng-01.21](doc/ngxsemaphore.md) 261 | * [ngx.balancer yuansheng-01.21](doc/ngxbalancer.md) 262 | * [ngx.ssl yuansheng-01.21](doc/ngxssl.md) 263 | * [ngx.ocsp yuansheng-01.21](doc/ngxocsp.md) 264 | * [ndk.set_var.DIRECTIVE yuansheng-9.30](doc/ndkset_vardirective.md) 265 | * [coroutine.create yuansheng-9.30](doc/coroutinecreate.md) 266 | * [coroutine.resume yuansheng-9.30](doc/coroutineresume.md) 267 | * [coroutine.yield yuansheng-9.30](doc/coroutineyield.md) 268 | * [coroutine.wrap yuansheng-9.30](doc/coroutinewrap.md) 269 | * [coroutine.running yuansheng-9.30](doc/coroutinerunning.md) 270 | * [coroutine.status yuansheng-9.30](doc/coroutinestatus.md) 271 | --------------------------------------------------------------------------------