summaryrefslogtreecommitdiff
path: root/docs/manual/developer/lua.html.en
diff options
context:
space:
mode:
authorDaniel Gruno <humbedooh@apache.org>2012-08-08 19:18:41 +0000
committerDaniel Gruno <humbedooh@apache.org>2012-08-08 19:18:41 +0000
commit7f96b2532dc6b4403fcb2ac376ea1651017b2935 (patch)
treedd27d81d7bf41b3c2d089f956abf89fb55174ec7 /docs/manual/developer/lua.html.en
parent4881ce1229a92d663f2b32753bd334764eb3daa7 (diff)
downloadhttpd-7f96b2532dc6b4403fcb2ac376ea1651017b2935.tar.gz
xforms
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1370901 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'docs/manual/developer/lua.html.en')
-rw-r--r--docs/manual/developer/lua.html.en665
1 files changed, 99 insertions, 566 deletions
diff --git a/docs/manual/developer/lua.html.en b/docs/manual/developer/lua.html.en
index 4f1787c10a..3150424374 100644
--- a/docs/manual/developer/lua.html.en
+++ b/docs/manual/developer/lua.html.en
@@ -28,6 +28,7 @@
additional ways of using mod_lua for writing hooks and scripts.</p>
</div>
<div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#introduction">Introduction</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#enabling">Optimizing mod_lua for production servers</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#basic_remap">Example 1: A basic remapping module</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#mass_vhost">Example 2: Mass virtual hosting</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#basic_auth">Example 3: A basic authorization hook</a></li>
@@ -51,13 +52,11 @@ Stuff about what <code class="module"><a href="../mod/mod_lua.html">mod_lua</a><
<h3><a name="contents" id="contents">What we will be discussing in this document</a></h3>
<p>
-This document will discuss how you can bla bla bla.
-In the first chapter, we will bla bla
+This document will discuss several cases where <code class="module"><a href="../mod/mod_lua.html">mod_lua</a></code> can be used
+to either ease up a phase of the request processing or create more transparency in
+the logic behind a decision made in a phase.
</p>
-<p>
-In the second part of this document, we will be looking at bla bla bla
-</p>
<h3><a name="prerequisites" id="prerequisites">Prerequisites</a></h3>
@@ -72,12 +71,90 @@ and whys of various function calls.
-<h3><a name="enabling" id="enabling">Enabling mod_lua</a></h3>
-
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="enabling" id="enabling">Optimizing mod_lua for production servers</a></h2>
+
+<h3>Setting a scope for Lua states</h3>
+<p>
+Setting the right <code class="directive"><a href="../mod/mod_lua.html#luascope">LuaScope</a></code> setting
+for your Lua scripts can be essential to your server's
+performance. By default, the scope is set to <code>once</code>, which means
+that every call to a Lua script will spawn a new Lua state that handles that
+script and is destroyed immediately after. This option keeps the memory
+footprint of mod_lua low, but also affects the processing speed of a request.
+If you have the memory to spare, you can set the scope to <code>thread</code>,
+which will make mod_lua spawn a Lua state that lasts the entirity of a thread's
+lifetime, speeding up request processing by 2-3 times. Since mod_lua will create
+a state for each script, this may be an expensive move, memory-wise, so to
+compromise between speed and memory usage, you can choose the <code>server</code>
+option to create a pool of Lua states to be used. Each request for a Lua script or
+a hook function will then acquire a state from the pool and release it back when it's
+done using it, allowing you to still gain a significant performance increase, while
+keeping your memory footprint low. Some examples of possible settings are:
+</p>
<pre class="prettyprint lang-config">
-LoadModule lua_module modules/mod_lua.so
+LuaScope once
+LuaScope thread
+LuaScope server 5 40
</pre>
+<p>
+As a general rule of thumb: If your server has none to low usage, use <code>once</code>
+or <code>request</code>, if your server has low to medium usage, use the <code>server</code>
+pool, and if it has high usage, use the <code>thread</code> setting. As your server's
+load increases, so will the number of states being actively used, and having your scope
+set to <code>once/request/conn</code> will stop being beneficial to your memory footprint.
+</p>
+<p>
+<strong>Note:</strong> The <code>min</code> and <code>max</code> settings for the
+<code>server</code> scope denotes the minimum and maximum states to keep in a pool per
+server <em>process</em>, so keep this below your <code>ThreadsPerChild</code> limit.
+</p>
+
+
+<h3>Using code caching</h3>
+<p>
+By default, <code class="module"><a href="../mod/mod_lua.html">mod_lua</a></code> stats each Lua script to determine whether a reload
+(and thus, a re-interpretation and re-compilation) of a script is required. This is managed
+through the <code class="directive"><a href="../mod/mod_lua.html#luacodecache">LuaCodeCache</a></code> directive. If you are running
+your scripts on a production server, and you do not need to update them regularly, it may be
+advantageous to set this directive to the <code>forever</code> value, which will cause mod_lua
+to skip the stat process and always reuse the compiled byte-code from the first access to the
+script, thus speeding up the processing. For Lua hooks, this can prove to increase peformance,
+while for scripts handled by the <code>lua-script</code> handler, the increase in performance
+may be negligible, as files httpd will stat the files regardless.
+</p>
+
+
+<h3>Keeping the scope clean</h3>
+<p>
+For maximum performance, it is generally recommended that any initialization of libraries,
+constants and master tables be kept outside the handle's scope:
+</p>
+<pre class="prettyprint lang-lua">
+--[[ This is good practice ]]--
+require "string"
+require "someLibrary"
+local masterTable = {}
+local constant = "Foo bar baz"
+
+function handle(r)
+ do_stuff()
+end
+</pre>
+
+<pre class="prettyprint lang-lua">
+--[[ This is bad practice ]]--
+require "string"
+
+function handle(r)
+ require "someLibrary"
+ local masterTable = {}
+ local constant = "Foo bar baz"
+ do_stuff()
+end
+</pre>
@@ -101,8 +178,6 @@ LuaHookTranslateName /path/too/foo.lua remap
This example will rewrite /foo/test.bar to the physical file
/internal/test, somewhat like how mod_alias works.
]]--
-require 'apache2'
-require 'string'
function remap(r)
-- Test if the URI matches our criteria
@@ -125,8 +200,6 @@ end
remap a file to one of two destinations, using a rewrite map.
]]--
-require 'apache2'
-require 'string'
local map = {
photos = {
@@ -190,8 +263,6 @@ LuaHookTranslateName /path/too/foo.lua mass_vhost
This example will check a map for a virtual host and rewrite filename and
document root accordingly.
]]--
-require 'apache2'
-require 'string'
local vhosts = {
{ domain = "example.com", home = "/www/example.com" },
@@ -226,8 +297,6 @@ end
60 seconds before checking for updates. For best performance, such scripts
should generally be run with LuaScope set to 'thread' or 'server'
]]--
-require 'apache2'
-require 'string'
local cached_vhosts = {}
local timeout = 60
@@ -282,9 +351,10 @@ LuaHookAuthChecker /path/too/foo.lua check_auth
<pre class="prettyprint lang-lua">
-require 'apache2'
-require 'string'
-
+--[[
+ A simple authentication hook that checks a table containing usernames and
+ passwords of two accounts.
+]]--
local accounts = {
bob = 'somePassword',
jane = 'Iloveponies'
@@ -324,10 +394,10 @@ end
<pre class="prettyprint lang-lua">
--- An advanced authentication checker with a database backend,
--- caching account entries for 1 minute
-require 'apache2'
-require 'string'
+--[[
+ An advanced authentication checker with a database backend,
+ caching account entries for 1 minute
+]]--
local timeout = 60 -- Set account info to be refreshed every minute
local accounts = {}
@@ -402,6 +472,12 @@ LuaAuthzProvider rights /path/to/lua/script.lua rights_handler
<pre class="prettyprint lang-lua">
+--[[
+ This script has two user groups; members and admins, and whichever
+ is refered to by the "Require rights" directive is checked to see
+ if the authenticated user belongs to this group.
+]]--
+
local members = { "rbowen", "humbedooh", "igalic", "covener" }
local admins = { "humbedooh" }
@@ -827,28 +903,14 @@ print(unescaped) -- prints "This is a test"
<h2><a name="Request_handling" id="Request_handling">HTTPd bindings: Request handling</a></h2>
<p>
-<a href="#apache2.sendfile">apache2.sendfile</a>
-<br />
-<a href="#apache2.port">apache2.port</a>
-<br />
-<a href="#apache2.options">apache2.options</a>
-<br />
-<a href="#apache2.allowoverrides">apache2.allowoverrides</a>
-<br />
<a href="#apache2.requestbody">apache2.requestbody</a>
<br />
<a href="#apache2.add_input_filter">apache2.add_input_filter</a>
<br />
<a href="#apache2.get_basic_auth_pw">apache2.get_basic_auth_pw</a>
<br />
-<a href="#apache2.get_limit_req_body">apache2.get_limit_req_body</a>
-<br />
-<a href="#apache2.request_has_body">apache2.request_has_body</a>
-<br />
<a href="#apache2.set_document_root">apache2.set_document_root</a>
<br />
-<a href="#apache2.some_auth_required">apache2.some_auth_required</a>
-<br />
<a href="#apache2.set_context_prefix">apache2.set_context_prefix</a>
<br />
<a href="#apache2.get_server_name_for_url">apache2.get_server_name_for_url</a>
@@ -857,18 +919,8 @@ print(unescaped) -- prints "This is a test"
<br />
<a href="#apache2.make_etag">apache2.make_etag</a>
<br />
-<a href="#apache2.flush">apache2.flush</a>
-<br />
<a href="#apache2.send_interim_response">apache2.send_interim_response</a>
<br />
-<a href="#apache2.get_server_name">apache2.get_server_name</a>
-<br />
-<a href="#apache2.auth_type">apache2.auth_type</a>
-<br />
-<a href="#apache2.auth_name">apache2.auth_name</a>
-<br />
-<a href="#apache2.satisfies">apache2.satisfies</a>
-<br />
</p>
<h3><a name="apache2.add_input_filter" id="apache2.add_input_filter">apache2.add_input_filter(
request_rec<em>&nbsp;r</em>, &nbsp;string<em>&nbsp;filter</em>
@@ -904,131 +956,6 @@ apache2.add_input_filter(r, "SPAM_FILTER") -- Check input for spam..?
<p>&nbsp;</p>
-<h3><a name="apache2.allowoverrides" id="apache2.allowoverrides">apache2.allowoverrides(
- request_rec<em>&nbsp;r</em>
- )
- </a></h3>
-
-<p>
-Returns the currently allowed overrides for this context (AuthCfg, Options etc)
- </p>
-<p>
-<em>Arguments:</em>
-</p>
-<table class="bordered">
-<tr>
-<th>Argument</th>
-<th>Description</th>
-</tr>
-<tr>
-<td>r</td>
-<td>The mod_lua request handle</td>
-</tr>
-</table>
-<p>
-<em>Return value(s):</em>
-<br />
-The currently allowed overrides for this context (AuthCfg, Options etc)
- </p>
-<p>
-<em>Example:</em>
-</p>
-<pre class="prettyprint lang-lua">
-local ctx = apache2.allowoverrides(r)
-if ctx:match("AuthCfg") then
- r:puts("You are allowed to override AuthCfg stuff in your .htaccess")
-end
- </pre>
-
-<p>&nbsp;</p>
-
-<h3><a name="apache2.auth_name" id="apache2.auth_name">apache2.auth_name(
- request_rec<em>&nbsp;r</em>
- )
- </a></h3>
-
-<p>
-Returns the current Authorization realm
- </p>
-<p>
-<em>Arguments:</em>
-</p>
-<table class="bordered">
-<tr>
-<th>Argument</th>
-<th>Description</th>
-</tr>
-<tr>
-<td>r</td>
-<td>The mod_lua request handle</td>
-</tr>
-</table>
-<p>
-<em>Return value(s):</em>
-<br />
-The current authorization realm
- </p>
-<p>&nbsp;</p>
-
-<h3><a name="apache2.auth_type" id="apache2.auth_type">apache2.auth_type(
- request_rec<em>&nbsp;r</em>
- )
- </a></h3>
-
-<p>
-Returns the current authentication type used in the request
- </p>
-<p>
-<em>Arguments:</em>
-</p>
-<table class="bordered">
-<tr>
-<th>Argument</th>
-<th>Description</th>
-</tr>
-<tr>
-<td>r</td>
-<td>The mod_lua request handle</td>
-</tr>
-</table>
-<p>
-<em>Return value(s):</em>
-<br />
-The current Authorization type used in the request
- </p>
-<p>&nbsp;</p>
-
-<h3><a name="apache2.flush" id="apache2.flush">apache2.flush(
- request_rec<em>&nbsp;r</em>
- )
- </a></h3>
-
-<p>
-Flushes the content buffer, writing everything to the client immediately.
- </p>
-<p>
-<em>Arguments:</em>
-</p>
-<table class="bordered">
-<tr>
-<th>Argument</th>
-<th>Description</th>
-</tr>
-<tr>
-<td>r</td>
-<td>The mod_lua request handle</td>
-</tr>
-</table>
-<p>
-<em>Example:</em>
-</p>
-<pre class="prettyprint lang-lua">
-r:puts("This is buffered")
-apache2.flush(r) -- now it's written to the client.
- </pre>
-
-<p>&nbsp;</p>
-
<h3><a name="apache2.get_basic_auth_pw" id="apache2.get_basic_auth_pw">apache2.get_basic_auth_pw(
request_rec<em>&nbsp;r</em>
)
@@ -1057,78 +984,6 @@ The password from a basic authorization request or nil if none was supplied
</p>
<p>&nbsp;</p>
-<h3><a name="apache2.get_limit_req_body" id="apache2.get_limit_req_body">apache2.get_limit_req_body(
- request_rec<em>&nbsp;r</em>
- )
- </a></h3>
-
-<p>
-Returns the current request body size limit
- </p>
-<p>
-<em>Arguments:</em>
-</p>
-<table class="bordered">
-<tr>
-<th>Argument</th>
-<th>Description</th>
-</tr>
-<tr>
-<td>r</td>
-<td>The mod_lua request handle</td>
-</tr>
-</table>
-<p>
-<em>Return value(s):</em>
-<br />
-The current request body size limit
- </p>
-<p>
-<em>Example:</em>
-</p>
-<pre class="prettyprint lang-lua">
-local limit = apache2.get_limit_req_body(r)
-r:puts("You can't upload files bigger than ", limit, " bytes!")
- </pre>
-
-<p>&nbsp;</p>
-
-<h3><a name="apache2.get_server_name" id="apache2.get_server_name">apache2.get_server_name(
- request_rec<em>&nbsp;r</em>
- )
- </a></h3>
-
-<p>
-Returns the current server name from the request
- </p>
-<p>
-<em>Arguments:</em>
-</p>
-<table class="bordered">
-<tr>
-<th>Argument</th>
-<th>Description</th>
-</tr>
-<tr>
-<td>r</td>
-<td>The mod_lua request handle</td>
-</tr>
-</table>
-<p>
-<em>Return value(s):</em>
-<br />
-The server name
- </p>
-<p>
-<em>Example:</em>
-</p>
-<pre class="prettyprint lang-lua">
-local name = apache2.get_server_name(r)
-r:puts("The ServerName is set to: ", name)
- </pre>
-
-<p>&nbsp;</p>
-
<h3><a name="apache2.get_server_name_for_url" id="apache2.get_server_name_for_url">apache2.get_server_name_for_url(
request_rec<em>&nbsp;r</em>
)
@@ -1185,117 +1040,6 @@ The entity tag
</p>
<p>&nbsp;</p>
-<h3><a name="apache2.options" id="apache2.options">apache2.options(
- request_rec<em>&nbsp;r</em>
- )
- </a></h3>
-
-<p>
-Returns the currently allowed options for this context (Indexes, MultiViews etc)
- </p>
-<p>
-<em>Arguments:</em>
-</p>
-<table class="bordered">
-<tr>
-<th>Argument</th>
-<th>Description</th>
-</tr>
-<tr>
-<td>r</td>
-<td>The mod_lua request handle</td>
-</tr>
-</table>
-<p>
-<em>Return value(s):</em>
-<br />
-The currently allowed options for this context.
- </p>
-<p>
-<em>Example:</em>
-</p>
-<pre class="prettyprint lang-lua">
-local ctx = apache2.options(r)
-if ctx:match("MultiViews") then
- r:puts("MultiViews is enabled!")
-end
- </pre>
-
-<p>&nbsp;</p>
-
-<h3><a name="apache2.port" id="apache2.port">apache2.port(
- request_rec<em>&nbsp;r</em>
- )
- </a></h3>
-
-<p>
-Returns the port currently being used by the request
- </p>
-<p>
-<em>Arguments:</em>
-</p>
-<table class="bordered">
-<tr>
-<th>Argument</th>
-<th>Description</th>
-</tr>
-<tr>
-<td>r</td>
-<td>The mod_lua request handle</td>
-</tr>
-</table>
-<p>
-<em>Return value(s):</em>
-<br />
-The current port used by the request
- </p>
-<p>
-<em>Example:</em>
-</p>
-<pre class="prettyprint lang-lua">
-local port = apache2.port(r)
-r:puts("We are listening on port ", port)
- </pre>
-
-<p>&nbsp;</p>
-
-<h3><a name="apache2.request_has_body" id="apache2.request_has_body">apache2.request_has_body(
- request_rec<em>&nbsp;r</em>
- )
- </a></h3>
-
-<p>
-Returns true if the request has a body(POST/PUT), false otherwise
- </p>
-<p>
-<em>Arguments:</em>
-</p>
-<table class="bordered">
-<tr>
-<th>Argument</th>
-<th>Description</th>
-</tr>
-<tr>
-<td>r</td>
-<td>The mod_lua request handle</td>
-</tr>
-</table>
-<p>
-<em>Return value(s):</em>
-<br />
-True if the request has a body(POST/PUT), false otherwise
- </p>
-<p>
-<em>Example:</em>
-</p>
-<pre class="prettyprint lang-lua">
-if apache2.request_has_body(r) then
- -- do stuff with the req body
-end
- </pre>
-
-<p>&nbsp;</p>
-
<h3><a name="apache2.requestbody" id="apache2.requestbody">apache2.requestbody(
request_rec<em>&nbsp;r</em>, &nbsp;number<em>&nbsp;size</em>, &nbsp;string<em>&nbsp;filename</em>
)
@@ -1345,44 +1089,6 @@ end
<p>&nbsp;</p>
-<h3><a name="apache2.satisfies" id="apache2.satisfies">apache2.satisfies(
- request_rec<em>&nbsp;r</em>
- )
- </a></h3>
-
-<p>
-Returns how the requires lines must be met.
- </p>
-<p>
-<em>Arguments:</em>
-</p>
-<table class="bordered">
-<tr>
-<th>Argument</th>
-<th>Description</th>
-</tr>
-<tr>
-<td>r</td>
-<td>The mod_lua request handle</td>
-</tr>
-</table>
-<p>
-<em>Return value(s):</em>
-<br />
-How the requirements must be met (SATISFY_ANY, SATISFY_ALL, SATISFY_NOSPEC).
- </p>
-<p>
-<em>Example:</em>
-</p>
-<pre class="prettyprint lang-lua">
-local how = apache2.satisfies(r)
-if how == "SATISFY_ANY" then
- -- ...
-end
- </pre>
-
-<p>&nbsp;</p>
-
<h3><a name="apache2.send_interim_response" id="apache2.send_interim_response">apache2.send_interim_response(
request_rec<em>&nbsp;r</em>, &nbsp;boolean<em>&nbsp;send_headers</em>
)
@@ -1417,40 +1123,6 @@ apache2.send_interim_response(r, false)
<p>&nbsp;</p>
-<h3><a name="apache2.sendfile" id="apache2.sendfile">apache2.sendfile(
- request_rec<em>&nbsp;r</em>, &nbsp;string<em>&nbsp;filename</em>
- )
- </a></h3>
-
-<p>
-Sends a file to the client via sendfile() if possible.
- </p>
-<p>
-<em>Arguments:</em>
-</p>
-<table class="bordered">
-<tr>
-<th>Argument</th>
-<th>Description</th>
-</tr>
-<tr>
-<td>r</td>
-<td>The mod_lua request handle</td>
-</tr>
-<tr>
-<td>filename</td>
-<td>The file to send</td>
-</tr>
-</table>
-<p>
-<em>Example:</em>
-</p>
-<pre class="prettyprint lang-lua">
-apache2.sendfile(r, "/foo/bar/test.png") -- sends /foo/bar/test.png via sendfile
- </pre>
-
-<p>&nbsp;</p>
-
<h3><a name="apache2.set_context_prefix" id="apache2.set_context_prefix">apache2.set_context_prefix(
request_rec<em>&nbsp;r</em>, &nbsp;string<em>&nbsp;prefix</em>, &nbsp;string<em>&nbsp;document</em>
)
@@ -1547,43 +1219,6 @@ True if keepalive can be set, false otherwise
</p>
<p>&nbsp;</p>
-<h3><a name="apache2.some_auth_required" id="apache2.some_auth_required">apache2.some_auth_required(
- request_rec<em>&nbsp;r</em>
- )
- </a></h3>
-
-<p>
-Returns true if authorization is required for this request
- </p>
-<p>
-<em>Arguments:</em>
-</p>
-<table class="bordered">
-<tr>
-<th>Argument</th>
-<th>Description</th>
-</tr>
-<tr>
-<td>r</td>
-<td>The mod_lua request handle</td>
-</tr>
-</table>
-<p>
-<em>Return value(s):</em>
-<br />
-True if auth is required, false if not.
- </p>
-<p>
-<em>Example:</em>
-</p>
-<pre class="prettyprint lang-lua">
-if apache2.some_auth_required(r) then
- print("debug: auth is required for this request\n")
-end
- </pre>
-
-<p>&nbsp;</p>
-
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="Parser_functions" id="Parser_functions">HTTPd bindings: Parser functions</a></h2>
@@ -1735,8 +1370,6 @@ end
<p>
<a href="#apache2.add_version_component">apache2.add_version_component</a>
<br />
-<a href="#apache2.banner">apache2.banner</a>
-<br />
<a href="#apache2.mpm_query">apache2.mpm_query</a>
<br />
<a href="#apache2.terminate">apache2.terminate</a>
@@ -1745,14 +1378,8 @@ end
<br />
<a href="#apache2.scoreboard_worker">apache2.scoreboard_worker</a>
<br />
-<a href="#apache2.started">apache2.started</a>
-<br />
<a href="#apache2.module_info">apache2.module_info</a>
<br />
-<a href="#apache2.get_server_built">apache2.get_server_built</a>
-<br />
-<a href="#apache2.is_initial_req">apache2.is_initial_req</a>
-<br />
<a href="#apache2.loaded_modules">apache2.loaded_modules</a>
<br />
<a href="#apache2.runtime_dir_relative">apache2.runtime_dir_relative</a>
@@ -1802,25 +1429,6 @@ end
<p>&nbsp;</p>
-<h3><a name="apache2.banner" id="apache2.banner">apache2.banner(
-
- )
- </a></h3>
-
-<p>
-Returns the server banner
- </p>
-<p>
-<em>Arguments:</em>
-</p>
-<p>None</p>
-<p>
-<em>Return value(s):</em>
-<br />
-The server banner
- </p>
-<p>&nbsp;</p>
-
<h3><a name="apache2.custom_response" id="apache2.custom_response">apache2.custom_response(
request_rec<em>&nbsp;r</em>, &nbsp;number<em>&nbsp;status</em>, &nbsp;string<em>&nbsp;string</em>
)
@@ -1891,53 +1499,6 @@ end
<p>&nbsp;</p>
-<h3><a name="apache2.get_server_built" id="apache2.get_server_built">apache2.get_server_built(
-
- )
- </a></h3>
-
-<p>
-Returns the date the server was built
- </p>
-<p>
-<em>Arguments:</em>
-</p>
-<p>None</p>
-<p>
-<em>Return value(s):</em>
-<br />
-The date the server was built
- </p>
-<p>&nbsp;</p>
-
-<h3><a name="apache2.is_initial_req" id="apache2.is_initial_req">apache2.is_initial_req(
- request_rec<em>&nbsp;r</em>
- )
- </a></h3>
-
-<p>
-Returns true if this is the main request, false if it is a sub-request
- </p>
-<p>
-<em>Arguments:</em>
-</p>
-<table class="bordered">
-<tr>
-<th>Argument</th>
-<th>Description</th>
-</tr>
-<tr>
-<td>r</td>
-<td>The mod_lua request handle</td>
-</tr>
-</table>
-<p>
-<em>Return value(s):</em>
-<br />
-True if this is the main request, false if it is a sub-request
- </p>
-<p>&nbsp;</p>
-
<h3><a name="apache2.loaded_modules" id="apache2.loaded_modules">apache2.loaded_modules(
)
@@ -2136,34 +1697,6 @@ A table with information about the server program
</p>
<p>&nbsp;</p>
-<h3><a name="apache2.started" id="apache2.started">apache2.started(
- request_rec<em>&nbsp;r</em>
- )
- </a></h3>
-
-<p>
-Returns the time when the server was (re)started
- </p>
-<p>
-<em>Arguments:</em>
-</p>
-<table class="bordered">
-<tr>
-<th>Argument</th>
-<th>Description</th>
-</tr>
-<tr>
-<td>r</td>
-<td>The mod_lua request handle</td>
-</tr>
-</table>
-<p>
-<em>Return value(s):</em>
-<br />
-The time when the server was (re)started
- </p>
-<p>&nbsp;</p>
-
<h3><a name="apache2.state_query" id="apache2.state_query">apache2.state_query(
number<em>&nbsp;field</em>
)