doc: markdown format: inlined the TOC for the long sections "Directives" and "Nginx API for Lua" as per Pierre-Yves Gérardy's suggestion in #370.
This commit is contained in:
Родитель
c91e1f5258
Коммит
2b721c7fd2
332
README.markdown
332
README.markdown
|
@ -47,171 +47,7 @@ Table of Contents
|
|||
* [Copyright and License](#copyright-and-license)
|
||||
* [See Also](#see-also)
|
||||
* [Directives](#directives)
|
||||
* [lua_use_default_type](#lua_use_default_type)
|
||||
* [lua_code_cache](#lua_code_cache)
|
||||
* [lua_regex_cache_max_entries](#lua_regex_cache_max_entries)
|
||||
* [lua_regex_match_limit](#lua_regex_match_limit)
|
||||
* [lua_package_path](#lua_package_path)
|
||||
* [lua_package_cpath](#lua_package_cpath)
|
||||
* [init_by_lua](#init_by_lua)
|
||||
* [init_by_lua_file](#init_by_lua_file)
|
||||
* [init_worker_by_lua](#init_worker_by_lua)
|
||||
* [init_worker_by_lua_file](#init_worker_by_lua_file)
|
||||
* [set_by_lua](#set_by_lua)
|
||||
* [set_by_lua_file](#set_by_lua_file)
|
||||
* [content_by_lua](#content_by_lua)
|
||||
* [content_by_lua_file](#content_by_lua_file)
|
||||
* [rewrite_by_lua](#rewrite_by_lua)
|
||||
* [rewrite_by_lua_file](#rewrite_by_lua_file)
|
||||
* [access_by_lua](#access_by_lua)
|
||||
* [access_by_lua_file](#access_by_lua_file)
|
||||
* [header_filter_by_lua](#header_filter_by_lua)
|
||||
* [header_filter_by_lua_file](#header_filter_by_lua_file)
|
||||
* [body_filter_by_lua](#body_filter_by_lua)
|
||||
* [body_filter_by_lua_file](#body_filter_by_lua_file)
|
||||
* [log_by_lua](#log_by_lua)
|
||||
* [log_by_lua_file](#log_by_lua_file)
|
||||
* [lua_need_request_body](#lua_need_request_body)
|
||||
* [lua_shared_dict](#lua_shared_dict)
|
||||
* [lua_socket_connect_timeout](#lua_socket_connect_timeout)
|
||||
* [lua_socket_send_timeout](#lua_socket_send_timeout)
|
||||
* [lua_socket_send_lowat](#lua_socket_send_lowat)
|
||||
* [lua_socket_read_timeout](#lua_socket_read_timeout)
|
||||
* [lua_socket_buffer_size](#lua_socket_buffer_size)
|
||||
* [lua_socket_pool_size](#lua_socket_pool_size)
|
||||
* [lua_socket_keepalive_timeout](#lua_socket_keepalive_timeout)
|
||||
* [lua_socket_log_errors](#lua_socket_log_errors)
|
||||
* [lua_http10_buffering](#lua_http10_buffering)
|
||||
* [rewrite_by_lua_no_postpone](#rewrite_by_lua_no_postpone)
|
||||
* [lua_transform_underscores_in_response_headers](#lua_transform_underscores_in_response_headers)
|
||||
* [lua_check_client_abort](#lua_check_client_abort)
|
||||
* [lua_max_pending_timers](#lua_max_pending_timers)
|
||||
* [lua_max_running_timers](#lua_max_running_timers)
|
||||
* [Nginx API for Lua](#nginx-api-for-lua)
|
||||
* [Introduction](#introduction)
|
||||
* [ngx.arg](#ngxarg)
|
||||
* [ngx.var.VARIABLE](#ngxvarvariable)
|
||||
* [Core constants](#core-constants)
|
||||
* [HTTP method constants](#http-method-constants)
|
||||
* [HTTP status constants](#http-status-constants)
|
||||
* [Nginx log level constants](#nginx-log-level-constants)
|
||||
* [print](#print)
|
||||
* [ngx.ctx](#ngxctx)
|
||||
* [ngx.location.capture](#ngxlocationcapture)
|
||||
* [ngx.location.capture_multi](#ngxlocationcapture_multi)
|
||||
* [ngx.status](#ngxstatus)
|
||||
* [ngx.header.HEADER](#ngxheaderheader)
|
||||
* [ngx.resp.get_headers](#ngxrespget_headers)
|
||||
* [ngx.req.start_time](#ngxreqstart_time)
|
||||
* [ngx.req.http_version](#ngxreqhttp_version)
|
||||
* [ngx.req.raw_header](#ngxreqraw_header)
|
||||
* [ngx.req.get_method](#ngxreqget_method)
|
||||
* [ngx.req.set_method](#ngxreqset_method)
|
||||
* [ngx.req.set_uri](#ngxreqset_uri)
|
||||
* [ngx.req.set_uri_args](#ngxreqset_uri_args)
|
||||
* [ngx.req.get_uri_args](#ngxreqget_uri_args)
|
||||
* [ngx.req.get_post_args](#ngxreqget_post_args)
|
||||
* [ngx.req.get_headers](#ngxreqget_headers)
|
||||
* [ngx.req.set_header](#ngxreqset_header)
|
||||
* [ngx.req.clear_header](#ngxreqclear_header)
|
||||
* [ngx.req.read_body](#ngxreqread_body)
|
||||
* [ngx.req.discard_body](#ngxreqdiscard_body)
|
||||
* [ngx.req.get_body_data](#ngxreqget_body_data)
|
||||
* [ngx.req.get_body_file](#ngxreqget_body_file)
|
||||
* [ngx.req.set_body_data](#ngxreqset_body_data)
|
||||
* [ngx.req.set_body_file](#ngxreqset_body_file)
|
||||
* [ngx.req.init_body](#ngxreqinit_body)
|
||||
* [ngx.req.append_body](#ngxreqappend_body)
|
||||
* [ngx.req.finish_body](#ngxreqfinish_body)
|
||||
* [ngx.req.socket](#ngxreqsocket)
|
||||
* [ngx.exec](#ngxexec)
|
||||
* [ngx.redirect](#ngxredirect)
|
||||
* [ngx.send_headers](#ngxsend_headers)
|
||||
* [ngx.headers_sent](#ngxheaders_sent)
|
||||
* [ngx.print](#ngxprint)
|
||||
* [ngx.say](#ngxsay)
|
||||
* [ngx.log](#ngxlog)
|
||||
* [ngx.flush](#ngxflush)
|
||||
* [ngx.exit](#ngxexit)
|
||||
* [ngx.eof](#ngxeof)
|
||||
* [ngx.sleep](#ngxsleep)
|
||||
* [ngx.escape_uri](#ngxescape_uri)
|
||||
* [ngx.unescape_uri](#ngxunescape_uri)
|
||||
* [ngx.encode_args](#ngxencode_args)
|
||||
* [ngx.decode_args](#ngxdecode_args)
|
||||
* [ngx.encode_base64](#ngxencode_base64)
|
||||
* [ngx.decode_base64](#ngxdecode_base64)
|
||||
* [ngx.crc32_short](#ngxcrc32_short)
|
||||
* [ngx.crc32_long](#ngxcrc32_long)
|
||||
* [ngx.hmac_sha1](#ngxhmac_sha1)
|
||||
* [ngx.md5](#ngxmd5)
|
||||
* [ngx.md5_bin](#ngxmd5_bin)
|
||||
* [ngx.sha1_bin](#ngxsha1_bin)
|
||||
* [ngx.quote_sql_str](#ngxquote_sql_str)
|
||||
* [ngx.today](#ngxtoday)
|
||||
* [ngx.time](#ngxtime)
|
||||
* [ngx.now](#ngxnow)
|
||||
* [ngx.update_time](#ngxupdate_time)
|
||||
* [ngx.localtime](#ngxlocaltime)
|
||||
* [ngx.utctime](#ngxutctime)
|
||||
* [ngx.cookie_time](#ngxcookie_time)
|
||||
* [ngx.http_time](#ngxhttp_time)
|
||||
* [ngx.parse_http_time](#ngxparse_http_time)
|
||||
* [ngx.is_subrequest](#ngxis_subrequest)
|
||||
* [ngx.re.match](#ngxrematch)
|
||||
* [ngx.re.find](#ngxrefind)
|
||||
* [ngx.re.gmatch](#ngxregmatch)
|
||||
* [ngx.re.sub](#ngxresub)
|
||||
* [ngx.re.gsub](#ngxregsub)
|
||||
* [ngx.shared.DICT](#ngxshareddict)
|
||||
* [ngx.shared.DICT.get](#ngxshareddictget)
|
||||
* [ngx.shared.DICT.get_stale](#ngxshareddictget_stale)
|
||||
* [ngx.shared.DICT.set](#ngxshareddictset)
|
||||
* [ngx.shared.DICT.safe_set](#ngxshareddictsafe_set)
|
||||
* [ngx.shared.DICT.add](#ngxshareddictadd)
|
||||
* [ngx.shared.DICT.safe_add](#ngxshareddictsafe_add)
|
||||
* [ngx.shared.DICT.replace](#ngxshareddictreplace)
|
||||
* [ngx.shared.DICT.delete](#ngxshareddictdelete)
|
||||
* [ngx.shared.DICT.incr](#ngxshareddictincr)
|
||||
* [ngx.shared.DICT.flush_all](#ngxshareddictflush_all)
|
||||
* [ngx.shared.DICT.flush_expired](#ngxshareddictflush_expired)
|
||||
* [ngx.shared.DICT.get_keys](#ngxshareddictget_keys)
|
||||
* [ngx.socket.udp](#ngxsocketudp)
|
||||
* [udpsock:setpeername](#udpsocksetpeername)
|
||||
* [udpsock:send](#udpsocksend)
|
||||
* [udpsock:receive](#udpsockreceive)
|
||||
* [udpsock:close](#udpsockclose)
|
||||
* [udpsock:settimeout](#udpsocksettimeout)
|
||||
* [ngx.socket.tcp](#ngxsockettcp)
|
||||
* [tcpsock:connect](#tcpsockconnect)
|
||||
* [tcpsock:send](#tcpsocksend)
|
||||
* [tcpsock:receive](#tcpsockreceive)
|
||||
* [tcpsock:receiveuntil](#tcpsockreceiveuntil)
|
||||
* [tcpsock:close](#tcpsockclose)
|
||||
* [tcpsock:settimeout](#tcpsocksettimeout)
|
||||
* [tcpsock:setoption](#tcpsocksetoption)
|
||||
* [tcpsock:setkeepalive](#tcpsocksetkeepalive)
|
||||
* [tcpsock:getreusedtimes](#tcpsockgetreusedtimes)
|
||||
* [ngx.socket.connect](#ngxsocketconnect)
|
||||
* [ngx.get_phase](#ngxget_phase)
|
||||
* [ngx.thread.spawn](#ngxthreadspawn)
|
||||
* [ngx.thread.wait](#ngxthreadwait)
|
||||
* [ngx.on_abort](#ngxon_abort)
|
||||
* [ngx.timer.at](#ngxtimerat)
|
||||
* [ngx.config.debug](#ngxconfigdebug)
|
||||
* [ngx.config.prefix](#ngxconfigprefix)
|
||||
* [ngx.config.nginx_version](#ngxconfignginx_version)
|
||||
* [ngx.config.nginx_configure](#ngxconfignginx_configure)
|
||||
* [ngx.config.ngx_lua_version](#ngxconfigngx_lua_version)
|
||||
* [ngx.worker.exiting](#ngxworkerexiting)
|
||||
* [ngx.worker.pid](#ngxworkerpid)
|
||||
* [ndk.set_var.DIRECTIVE](#ndkset_vardirective)
|
||||
* [coroutine.create](#coroutinecreate)
|
||||
* [coroutine.resume](#coroutineresume)
|
||||
* [coroutine.yield](#coroutineyield)
|
||||
* [coroutine.wrap](#coroutinewrap)
|
||||
* [coroutine.running](#coroutinerunning)
|
||||
* [coroutine.status](#coroutinestatus)
|
||||
|
||||
Status
|
||||
======
|
||||
|
@ -1113,7 +949,47 @@ See Also
|
|||
Directives
|
||||
==========
|
||||
|
||||
<!-- inline-toc -->
|
||||
* [lua_use_default_type](#lua_use_default_type)
|
||||
* [lua_code_cache](#lua_code_cache)
|
||||
* [lua_regex_cache_max_entries](#lua_regex_cache_max_entries)
|
||||
* [lua_regex_match_limit](#lua_regex_match_limit)
|
||||
* [lua_package_path](#lua_package_path)
|
||||
* [lua_package_cpath](#lua_package_cpath)
|
||||
* [init_by_lua](#init_by_lua)
|
||||
* [init_by_lua_file](#init_by_lua_file)
|
||||
* [init_worker_by_lua](#init_worker_by_lua)
|
||||
* [init_worker_by_lua_file](#init_worker_by_lua_file)
|
||||
* [set_by_lua](#set_by_lua)
|
||||
* [set_by_lua_file](#set_by_lua_file)
|
||||
* [content_by_lua](#content_by_lua)
|
||||
* [content_by_lua_file](#content_by_lua_file)
|
||||
* [rewrite_by_lua](#rewrite_by_lua)
|
||||
* [rewrite_by_lua_file](#rewrite_by_lua_file)
|
||||
* [access_by_lua](#access_by_lua)
|
||||
* [access_by_lua_file](#access_by_lua_file)
|
||||
* [header_filter_by_lua](#header_filter_by_lua)
|
||||
* [header_filter_by_lua_file](#header_filter_by_lua_file)
|
||||
* [body_filter_by_lua](#body_filter_by_lua)
|
||||
* [body_filter_by_lua_file](#body_filter_by_lua_file)
|
||||
* [log_by_lua](#log_by_lua)
|
||||
* [log_by_lua_file](#log_by_lua_file)
|
||||
* [lua_need_request_body](#lua_need_request_body)
|
||||
* [lua_shared_dict](#lua_shared_dict)
|
||||
* [lua_socket_connect_timeout](#lua_socket_connect_timeout)
|
||||
* [lua_socket_send_timeout](#lua_socket_send_timeout)
|
||||
* [lua_socket_send_lowat](#lua_socket_send_lowat)
|
||||
* [lua_socket_read_timeout](#lua_socket_read_timeout)
|
||||
* [lua_socket_buffer_size](#lua_socket_buffer_size)
|
||||
* [lua_socket_pool_size](#lua_socket_pool_size)
|
||||
* [lua_socket_keepalive_timeout](#lua_socket_keepalive_timeout)
|
||||
* [lua_socket_log_errors](#lua_socket_log_errors)
|
||||
* [lua_http10_buffering](#lua_http10_buffering)
|
||||
* [rewrite_by_lua_no_postpone](#rewrite_by_lua_no_postpone)
|
||||
* [lua_transform_underscores_in_response_headers](#lua_transform_underscores_in_response_headers)
|
||||
* [lua_check_client_abort](#lua_check_client_abort)
|
||||
* [lua_max_pending_timers](#lua_max_pending_timers)
|
||||
* [lua_max_running_timers](#lua_max_running_timers)
|
||||
|
||||
|
||||
[Back to TOC](#table-of-contents)
|
||||
|
||||
|
@ -2309,7 +2185,131 @@ This directive was first introduced in the `v0.8.0` release.
|
|||
Nginx API for Lua
|
||||
=================
|
||||
|
||||
<!-- inline-toc -->
|
||||
* [Introduction](#introduction)
|
||||
* [ngx.arg](#ngxarg)
|
||||
* [ngx.var.VARIABLE](#ngxvarvariable)
|
||||
* [Core constants](#core-constants)
|
||||
* [HTTP method constants](#http-method-constants)
|
||||
* [HTTP status constants](#http-status-constants)
|
||||
* [Nginx log level constants](#nginx-log-level-constants)
|
||||
* [print](#print)
|
||||
* [ngx.ctx](#ngxctx)
|
||||
* [ngx.location.capture](#ngxlocationcapture)
|
||||
* [ngx.location.capture_multi](#ngxlocationcapture_multi)
|
||||
* [ngx.status](#ngxstatus)
|
||||
* [ngx.header.HEADER](#ngxheaderheader)
|
||||
* [ngx.resp.get_headers](#ngxrespget_headers)
|
||||
* [ngx.req.start_time](#ngxreqstart_time)
|
||||
* [ngx.req.http_version](#ngxreqhttp_version)
|
||||
* [ngx.req.raw_header](#ngxreqraw_header)
|
||||
* [ngx.req.get_method](#ngxreqget_method)
|
||||
* [ngx.req.set_method](#ngxreqset_method)
|
||||
* [ngx.req.set_uri](#ngxreqset_uri)
|
||||
* [ngx.req.set_uri_args](#ngxreqset_uri_args)
|
||||
* [ngx.req.get_uri_args](#ngxreqget_uri_args)
|
||||
* [ngx.req.get_post_args](#ngxreqget_post_args)
|
||||
* [ngx.req.get_headers](#ngxreqget_headers)
|
||||
* [ngx.req.set_header](#ngxreqset_header)
|
||||
* [ngx.req.clear_header](#ngxreqclear_header)
|
||||
* [ngx.req.read_body](#ngxreqread_body)
|
||||
* [ngx.req.discard_body](#ngxreqdiscard_body)
|
||||
* [ngx.req.get_body_data](#ngxreqget_body_data)
|
||||
* [ngx.req.get_body_file](#ngxreqget_body_file)
|
||||
* [ngx.req.set_body_data](#ngxreqset_body_data)
|
||||
* [ngx.req.set_body_file](#ngxreqset_body_file)
|
||||
* [ngx.req.init_body](#ngxreqinit_body)
|
||||
* [ngx.req.append_body](#ngxreqappend_body)
|
||||
* [ngx.req.finish_body](#ngxreqfinish_body)
|
||||
* [ngx.req.socket](#ngxreqsocket)
|
||||
* [ngx.exec](#ngxexec)
|
||||
* [ngx.redirect](#ngxredirect)
|
||||
* [ngx.send_headers](#ngxsend_headers)
|
||||
* [ngx.headers_sent](#ngxheaders_sent)
|
||||
* [ngx.print](#ngxprint)
|
||||
* [ngx.say](#ngxsay)
|
||||
* [ngx.log](#ngxlog)
|
||||
* [ngx.flush](#ngxflush)
|
||||
* [ngx.exit](#ngxexit)
|
||||
* [ngx.eof](#ngxeof)
|
||||
* [ngx.sleep](#ngxsleep)
|
||||
* [ngx.escape_uri](#ngxescape_uri)
|
||||
* [ngx.unescape_uri](#ngxunescape_uri)
|
||||
* [ngx.encode_args](#ngxencode_args)
|
||||
* [ngx.decode_args](#ngxdecode_args)
|
||||
* [ngx.encode_base64](#ngxencode_base64)
|
||||
* [ngx.decode_base64](#ngxdecode_base64)
|
||||
* [ngx.crc32_short](#ngxcrc32_short)
|
||||
* [ngx.crc32_long](#ngxcrc32_long)
|
||||
* [ngx.hmac_sha1](#ngxhmac_sha1)
|
||||
* [ngx.md5](#ngxmd5)
|
||||
* [ngx.md5_bin](#ngxmd5_bin)
|
||||
* [ngx.sha1_bin](#ngxsha1_bin)
|
||||
* [ngx.quote_sql_str](#ngxquote_sql_str)
|
||||
* [ngx.today](#ngxtoday)
|
||||
* [ngx.time](#ngxtime)
|
||||
* [ngx.now](#ngxnow)
|
||||
* [ngx.update_time](#ngxupdate_time)
|
||||
* [ngx.localtime](#ngxlocaltime)
|
||||
* [ngx.utctime](#ngxutctime)
|
||||
* [ngx.cookie_time](#ngxcookie_time)
|
||||
* [ngx.http_time](#ngxhttp_time)
|
||||
* [ngx.parse_http_time](#ngxparse_http_time)
|
||||
* [ngx.is_subrequest](#ngxis_subrequest)
|
||||
* [ngx.re.match](#ngxrematch)
|
||||
* [ngx.re.find](#ngxrefind)
|
||||
* [ngx.re.gmatch](#ngxregmatch)
|
||||
* [ngx.re.sub](#ngxresub)
|
||||
* [ngx.re.gsub](#ngxregsub)
|
||||
* [ngx.shared.DICT](#ngxshareddict)
|
||||
* [ngx.shared.DICT.get](#ngxshareddictget)
|
||||
* [ngx.shared.DICT.get_stale](#ngxshareddictget_stale)
|
||||
* [ngx.shared.DICT.set](#ngxshareddictset)
|
||||
* [ngx.shared.DICT.safe_set](#ngxshareddictsafe_set)
|
||||
* [ngx.shared.DICT.add](#ngxshareddictadd)
|
||||
* [ngx.shared.DICT.safe_add](#ngxshareddictsafe_add)
|
||||
* [ngx.shared.DICT.replace](#ngxshareddictreplace)
|
||||
* [ngx.shared.DICT.delete](#ngxshareddictdelete)
|
||||
* [ngx.shared.DICT.incr](#ngxshareddictincr)
|
||||
* [ngx.shared.DICT.flush_all](#ngxshareddictflush_all)
|
||||
* [ngx.shared.DICT.flush_expired](#ngxshareddictflush_expired)
|
||||
* [ngx.shared.DICT.get_keys](#ngxshareddictget_keys)
|
||||
* [ngx.socket.udp](#ngxsocketudp)
|
||||
* [udpsock:setpeername](#udpsocksetpeername)
|
||||
* [udpsock:send](#udpsocksend)
|
||||
* [udpsock:receive](#udpsockreceive)
|
||||
* [udpsock:close](#udpsockclose)
|
||||
* [udpsock:settimeout](#udpsocksettimeout)
|
||||
* [ngx.socket.tcp](#ngxsockettcp)
|
||||
* [tcpsock:connect](#tcpsockconnect)
|
||||
* [tcpsock:send](#tcpsocksend)
|
||||
* [tcpsock:receive](#tcpsockreceive)
|
||||
* [tcpsock:receiveuntil](#tcpsockreceiveuntil)
|
||||
* [tcpsock:close](#tcpsockclose)
|
||||
* [tcpsock:settimeout](#tcpsocksettimeout)
|
||||
* [tcpsock:setoption](#tcpsocksetoption)
|
||||
* [tcpsock:setkeepalive](#tcpsocksetkeepalive)
|
||||
* [tcpsock:getreusedtimes](#tcpsockgetreusedtimes)
|
||||
* [ngx.socket.connect](#ngxsocketconnect)
|
||||
* [ngx.get_phase](#ngxget_phase)
|
||||
* [ngx.thread.spawn](#ngxthreadspawn)
|
||||
* [ngx.thread.wait](#ngxthreadwait)
|
||||
* [ngx.on_abort](#ngxon_abort)
|
||||
* [ngx.timer.at](#ngxtimerat)
|
||||
* [ngx.config.debug](#ngxconfigdebug)
|
||||
* [ngx.config.prefix](#ngxconfigprefix)
|
||||
* [ngx.config.nginx_version](#ngxconfignginx_version)
|
||||
* [ngx.config.nginx_configure](#ngxconfignginx_configure)
|
||||
* [ngx.config.ngx_lua_version](#ngxconfigngx_lua_version)
|
||||
* [ngx.worker.exiting](#ngxworkerexiting)
|
||||
* [ngx.worker.pid](#ngxworkerpid)
|
||||
* [ndk.set_var.DIRECTIVE](#ndkset_vardirective)
|
||||
* [coroutine.create](#coroutinecreate)
|
||||
* [coroutine.resume](#coroutineresume)
|
||||
* [coroutine.yield](#coroutineyield)
|
||||
* [coroutine.wrap](#coroutinewrap)
|
||||
* [coroutine.running](#coroutinerunning)
|
||||
* [coroutine.status](#coroutinestatus)
|
||||
|
||||
|
||||
[Back to TOC](#table-of-contents)
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче