You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by hu...@apache.org on 2012/08/08 21:18:42 UTC

svn commit: r1370901 - /httpd/httpd/trunk/docs/manual/developer/lua.html.en

Author: humbedooh
Date: Wed Aug  8 19:18:41 2012
New Revision: 1370901

URL: http://svn.apache.org/viewvc?rev=1370901&view=rev
Log:
xforms

Modified:
    httpd/httpd/trunk/docs/manual/developer/lua.html.en

Modified: httpd/httpd/trunk/docs/manual/developer/lua.html.en
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/docs/manual/developer/lua.html.en?rev=1370901&r1=1370900&r2=1370901&view=diff
==============================================================================
--- httpd/httpd/trunk/docs/manual/developer/lua.html.en (original)
+++ httpd/httpd/trunk/docs/manual/developer/lua.html.en Wed Aug  8 19:18:41 2012
@@ -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
 
 <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 r
     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 m
     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 che
 
 
 <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/scr
 
 
 <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 te
 <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 te
 <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
 
 <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 
         </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 othe
         </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 serve
         </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>
     )