Apache. Документация на русском


Директивы Apache
  1    2    3    4    5    6    7    8    9    10    11    12    13    14    15    16    17    18    19    20    21    22    23    24    25    26    27    28    29    30    31    32    33    34    35    36    37    38    39    40    41    42    43    44    45    46    47    48    49    50    51    52    53    54    55    56    57    58    59    60    61    62    63    64    65    66    67    68    69    70    71    72    73    74    75    76    77    78    79    80    81    82    83    84    85  
  86    87    88    89    90    91    92  
  93    94    95    96    97    98      99      100    101    102    103    104    105    106    107    108    109    110    111    112    113    114    115    116    117    118    119    120    121    122    123    124    125    126    127    128    129    130    131    132    133    134    135    136    137    138    139    140    141    142    143    144    145    146    147    148    149    150    151    152    153    154    155    156    157    158    159    160    161    162    163    164    165  
  166    167    168    169    170    171    172    173    174    175    176    177    178    179    180    181    182    183    184    185    186    187    188    189    190    191    192    193    194    195    196    197    198    199    200    201    202    203    204    205    206    207    208    209    210    211    212    213    214    215    216    217    218    219    220    221    222    223    224    225    226    227    228    229    230    231    232    233    234    235    236    237    238    239    240    241    242  

 <         > 
Список директив: Core  |  ModRewrite  |  Lua  |  Proxy  |  SSL

Built in functions
  RU            EN  

Объект request_rec имеет (как минимум) следующие методы:

  • r:flush() -- flushes the output buffer.
     -- Returns true if the flush was successful, false otherwise.
    while we_have_stuff_to_send do
     r:puts("Bla bla bla\n") -- print something to client
     r:flush() -- flush the buffer (send to client)
     r.usleep(500000) -- fake processing time for 0.5 sec. and repeat
    end
  • r:addoutputfilter(name|function) -- add an output filter:
    r:addoutputfilter("fooFilter") -- add the fooFilter to the output stream
  • r:sendfile(filename) -- sends an entire file to the client, using sendfile if supported by the current platform:
    if use_sendfile_thing then
     r:sendfile("/var/www/large_file.img")
    end
  • r:parseargs() -- returns two tables; one standard key/value table for regular GET data,
     -- and one for multi-value data (fx. foo=1&foo=2&foo=3):
    local GET, GETMULTI = r:parseargs()
    r:puts("Your name is: " .. GET['name'] or "Unknown")
  • r:parsebody([sizeLimit]) -- parse the request body as a POST and return two lua tables,
     -- just like r:parseargs().
     -- An optional number may be passed to specify the maximum number
     -- of bytes to parse. Default is 8192 bytes:
    
    local POST, POSTMULTI = r:parsebody(1024*1024)
    r:puts("Your name is: " .. POST['name'] or "Unknown")
  • r:puts("hello", " world", "!") -- print to response body, self explanatory
  • r:write("a single string") -- print to response body, self explanatory
  • r:escape_html("<html>test</html>") -- Escapes HTML code and returns the escaped result
  • r:base64_encode(string) -- Encodes a string using the Base64 encoding standard:
    local encoded = r:base64_encode("This is a test") -- returns VGhpcyBpcyBhIHRlc3Q=
  • r:base64_decode(string) -- Decodes a Base64-encoded string:
    local decoded = r:base64_decode("VGhpcyBpcyBhIHRlc3Q=") -- returns 'This is a test'
  • r:md5(string) -- Calculates and returns the MD5 digest of a string (binary safe):
    local hash = r:md5("This is a test") -- returns ce114e4501d2f4e2dcea3e17b546f339
  • r:sha1(string) -- Calculates and returns the SHA1 digest of a string (binary safe):
    local hash = r:sha1("This is a test") -- returns a54d88e06612d820bc3be72877c74f257b561b19
  • r:escape(string) -- URL-Escapes a string:
    local url = "http://foo.bar/1 2 3 & 4 + 5"
    local escaped = r:escape(url) -- returns 'http%3a%2f%2ffoo.bar%2f1+2+3+%26+4+%2b+5'
  • r:unescape(string) -- Unescapes an URL-escaped string:
    local url = "http%3a%2f%2ffoo.bar%2f1+2+3+%26+4+%2b+5"
    local unescaped = r:unescape(url) -- returns 'http://foo.bar/1 2 3 & 4 + 5'
  • r:construct_url(string) -- Constructs an URL from an URI
    local url = r:construct_url(r.uri)
  • r.mpm_query(number) -- Queries the server for MPM information using ap_mpm_query:
    local mpm = r.mpm_query(14)
    if mpm == 1 then
     r:puts("This server uses the Event MPM")
    end
  • r:expr(string) -- Evaluates an expr string.
    if r:expr("%{HTTP_HOST} =~ /^www/") then
     r:puts("This host name starts with www")
    end
  • r:scoreboard_process(a) -- Queries the server for information about the process at position  a  :
    local process = r:scoreboard_process(1)
    r:puts("Server 1 has PID " .. process.pid)
  • r:scoreboard_worker(a, b) -- Queries for information about the worker thread,  b  , in process  a  :
    local thread = r:scoreboard_worker(1, 1)
    r:puts("Server 1's thread 1 has thread ID " .. thread.tid .. " and is in " .. thread.status .. " status")
  • r:clock() -- Returns the current time with microsecond precision
  • r:requestbody(filename) -- Reads and returns the request body of a request.
     -- If 'filename' is specified, it instead saves the
     -- contents to that file:
    
    local input = r:requestbody()
    r:puts("You sent the following request body to me:\n")
    r:puts(input)
  • r:add_input_filter(filter_name) -- Adds 'filter_name' as an input filter
  • r.module_info(module_name) -- Queries the server for information about a module
    local mod = r.module_info("mod_lua.c")
    if mod then
     for k, v in pairs(mod.commands) do
     r:puts( ("%s: %s\n"):format(k,v)) -- print out all directives accepted by this module
     end
    end
  • r:loaded_modules() -- Returns a list of modules loaded by httpd:
    for k, module in pairs(r:loaded_modules()) do
     r:puts("I have loaded module " .. module .. "\n")
    end
  • r:runtime_dir_relative(filename) -- Compute the name of a run-time file (e.g., shared memory "file")
     -- relative to the appropriate run-time directory.
  • r:server_info() -- Returns a table containing server information, such as
     -- the name of the httpd executable file, mpm used etc.
  • r:set_document_root(file_path) -- Sets the document root for the request to file_path
  • r:set_context_info(prefix, docroot) -- Sets the context prefix and context document root for a request
  • r:os_escape_path(file_path) -- Converts an OS path to a URL in an OS dependent way
  • r:escape_logitem(string) -- Escapes a string for logging
  • r.strcmp_match(string, pattern) -- Checks if 'string' matches 'pattern' using strcmp_match (globs).
     -- fx. whether 'www.example.com' matches '*.example.com':
    
    local match = r.strcmp_match("foobar.com", "foo*.com")
    if match then
     r:puts("foobar.com matches foo*.com")
    end
  • r:set_keepalive() -- Sets the keepalive status for a request. Returns true if possible, false otherwise.
  • r:make_etag() -- Constructs and returns the etag for the current request.
  • r:send_interim_response(clear) -- Sends an interim (1xx) response to the client.
     -- if 'clear' is true, available headers will be sent and cleared.
  • r:custom_response(status_code, string) -- Construct and set a custom response for a given status code.
     -- This works much like the ErrorDocument directive:
    
    r:custom_response(404, "Baleted!")
  • r.exists_config_define(string) -- Checks whether a configuration definition exists or not:
    if r.exists_config_define("FOO") then
     r:puts("httpd was probably run with -DFOO, or it was defined in the configuration")
    end
  • r:state_query(string) -- Queries the server for state information
  • r:stat(filename [,wanted]) -- Runs stat() on a file, and returns a table with file information:
    local info = r:stat("/var/www/foo.txt")
    if info then
     r:puts("This file exists and was last modified at: " .. info.modified)
    end
  • r:regex(string, pattern [,flags]) -- Runs a regular expression match on a string, returning captures if matched:
    local matches = r:regex("foo bar baz", [[foo (\w+) (\S*)]])
    if matches then
     r:puts("The regex matched, and the last word captured ($2) was: " .. matches[2])
    end
    -- Example ignoring case sensitivity:
    local matches = r:regex("FOO bar BAz", [[(foo) bar]], 1)
    -- Flags can be a bitwise combination of:
    -- 0x01: Ignore case
    -- 0x02: Multiline search
  • r.usleep(number_of_microseconds) -- Puts the script to sleep for a given number of microseconds.
  • r:dbacquire(dbType[, dbParams]) -- Acquires a connection to a database and returns a database class.
     -- See 'Database connectivity' for details.
  • r:ivm_set("key", value) -- Set an Inter-VM variable to hold a specific value.
     -- These values persist even though the VM is gone or not being used,
     -- and so should only be used if MaxConnectionsPerChild is > 0
     -- Values can be numbers, strings and booleans, and are stored on a
     -- per process basis (so they won't do much good with a prefork mpm)
    
    r:ivm_get("key") -- Fetches a variable set by ivm_set. Returns the contents of the variable
     -- if it exists or nil if no such variable exists.
    
    -- An example getter/setter that saves a global variable outside the VM:
    function handle(r)
     -- First VM to call this will get no value, and will have to create it
     local foo = r:ivm_get("cached_data")
     if not foo then
     foo = do_some_calcs() -- fake some return value
     r:ivm_set("cached_data", foo) -- set it globally
     end
     r:puts("Cached data is: ", foo)
    end
  • r:htpassword(string [,algorithm [,cost]]) -- Creates a password hash from a string.
     -- algorithm: 0 = APMD5 (default), 1 = SHA, 2 = BCRYPT, 3 = CRYPT.
     -- cost: only valid with BCRYPT algorithm (default = 5).
  • r:mkdir(dir [,mode]) -- Creates a directory and sets mode to optional mode parameter.
  • r:mkrdir(dir [,mode]) -- Creates directories recursive and sets mode to optional mode parameter.
  • r:rmdir(dir) -- Removes a directory.
  • r:touch(file [,mtime]) -- Sets the file modification time to current time or to optional mtime msec value.
  • r:get_direntries(dir) -- Returns a table with all directory entries.
    function handle(r)
     local dir = r.context_document_root
     for _, f in ipairs(r:get_direntries(dir)) do
     local info = r:stat(dir .. "/" .. f)
     if info then
     local mtime = os.date(fmt, info.mtime / 1000000)
     local ftype = (info.filetype == 2) and "[dir] " or "[file]"
     r:puts( ("%s %s %10i %s\n"):format(ftype, mtime, info.size, f) )
     end
     end
    end
  • r.date_parse_rfc(string) -- Parses a date/time string and returns seconds since epoche.
  • r:getcookie(key) -- Gets a HTTP cookie
  • r:setcookie{
     key = [key],
     value = [value],
     expires = [expiry],
     secure = [boolean],
     httponly = [boolean],
     path = [path],
     domain = [domain]
    } -- Sets a HTTP cookie, for instance:
    r:setcookie{
     key = "cookie1",
     value = "HDHfa9eyffh396rt",
     expires = os.time() + 86400,
     secure = true
    }
  • r:wsupgrade() -- Upgrades a connection to WebSockets if possible (and requested):
    if r:wsupgrade() then -- if we can upgrade:
     r:wswrite("Welcome to websockets!") -- write something to the client
     r:wsclose() -- goodbye!
    end
  • r:wsread() -- Reads a WebSocket frame from a WebSocket upgraded connection (see above):
    local line, isFinal = r:wsread() -- isFinal denotes whether this is the final frame.
     -- If it isn't, then more frames can be read
    r:wswrite("You wrote: " .. line)
  • r:wswrite(line) -- Writes a frame to a WebSocket client:
    r:wswrite("Hello, world!")
  • r:wsclose() -- Closes a WebSocket request and terminates it for httpd:
    if r:wsupgrade() then
     r:wswrite("Write something: ")
     local line = r:wsread() or "nothing"
     r:wswrite("You wrote: " .. line);
     r:wswrite("Goodbye!")
     r:wsclose()
    end
  •   RU            EN  


    Рейтинг@Mail.ru