|
|
| |
Nginx::ReadBody::Russian(3) |
User Contributed Perl Documentation |
Nginx::ReadBody::Russian(3) |
Nginx::ReadBody::Russian -
Русская
документация
к модулю Nginx::ReadBody
для
встроенного
perl web-сервера nginx
Версия 0.07
#nginx.conf (part of)
location /post_here {
error_page 345 = @get_there;
error_page 346 = @good_post;
error_page 347 = @bad_post;
if ($request_method != POST)
{ return 345; }
set $read_body_debug 1;
set $read_body_check 'My::Own::check_userdata';
set $read_body_done 346;
set $read_body_nodata 347;
set $read_body_false 347;
perl Nginx::ReadBody::read;
}
В nginx нет
средств,
позволяющих
принимать
решения об
обработке
запроса на
основании
информации,
содержащейся
в его теле.
Этот
модуль
добавляет
такие
средства.
- "read($request);"
- Предназначен
быть
обработчиком
того location, с
телами
запросов в
который
надо
работать.
- "handler($request, $variableName, $defaultValue, $debug)"
- Метод
извлекает
из
внутренних
структур
модуля
обработчик,
соответствующий
содержимому
$variableName. Если
необходимо,
обработчик
сначала
создается.
Не
используется,
как
обработчик
location, но
вызывается
из таковых.
Возвращает
указатель
на
функцию,
определенную
в $variableName (или
$defaultValue).
Функция
создается
на основе
содержимого
$variableName (см.
ниже) с
помощью
"eval",
результат
кешируется
для
повышения
производительности.
Параметры
метода:
- $request
- Обект
запроса,
предоставляемый
nginx (см.
<http://wiki.nginx.org/NginxEmbeddedPerlModule>).
- $variableName
- Имя
переменной,
определенной
в "nginx.conf" и
содержащей
описание
функции-обработчика.
Варианты
описания
функции:
- Числовой
код
- Превращается
в ссылку на
тривиальный
метод,
возвращающий
этот код.
Вот так:
$handler = eval "sub { return $variableValue; }";
- Имя
функции
- Например,
"My::Own::method".
Превращается
в ссылку
на
указанную
функцию.
Вот так:
$handler = eval "\\&$variableValue";
- Описание
функции perl
- Примерно
такое: "sub
{...}".
Превращается
в ссылку
на
скомпилированную
описанную
функцию.
Вот так:
$handler = eval $variableValue;
Я вообще
не
тестировал
этот
вариант! И
сам я им
пользоваться
никогда
не буду -
содержимое
$variableName
С<eval>ится
прямо во
время
выполнения,
и к чему
это может
привести,
если в нем
будут
ошибки - я
не знаю.
Если
содержимое
$variableName не
соответствет
ни одному
из трех
вариантов,
или если
компиляция
содержимого
в ссылку на
функцию по
каким-либо
причинам
не удалась -
возвращается
ссылка на
функцию,
просто
возвращающую
код 500.
- $defaultValue
- Этот
параметр
используется
вместо
содержимого
переменной,
имя
которой
указано в
$variableName, если
она не
определена
или
пределена
как пустая
строка.
- $debug
- Определяет
уровень
логирования.
См. $read_body_debug.
- "variable($request, $variableName, $defaultValue, $debug)"
- Умный - ну,
не совсем
тупой -
извлекатель
переменных,
определенных
в
конфигурации
"nginx". Не
используется,
как
обработчик
location, но
вызывается
из таковых.
Параметры:
- $request
- Обект
запроса,
предоставляемый
nginx (см.
<http://wiki.nginx.org/NginxEmbeddedPerlModule>).
- $variableName
- Имя
переменно,
содержимое
которой
надо
вернуть.
- $defaultValue
- Значение,
возвращаемое,
если
переменная
не
определена
или
определена
как пустая
строка.
Может быть
неопределенным
("undef").
Если
переменная
не
определена,
а это
значение
определено
-
переменная
устанавливливается
в это
значение.
И, таким
образом,
становится
определенной
на
протяжении
последующей
обработки
запроса.
- $debug
- Определяет
уровень
логирования.
См. $read_body_debug.
- $read_body_debug
- Определяет,
должны ли
отладочные
сообщения
быть
записаны в
error.log.
Возможные
значения:
- Число 0 или
пустая
строка
- Значение
по
умолчанию.
Сообщения
не
записываются
в error.log.
- Положительное
число,
например 1
или
непустая
строка
- Отладочные
сообщения
записываются
со всеми
подробностями.
- Специальное
значение '0 but
true' или
отрицательное
число
- Отладочные
сообщения
записываются,
но
некоторые
подробности
опускаются.
- $read_body_nodata
- Ссодержит
описание
функции
(см. "handler").
Значение
по
умолчанию:
400.
Обработчик
"read()"
вызывает
эту
функцию,
если
переданный
ему
запрос не
содержит
тела.
Функция
вызывается
с одним
параметром:
объектом
запроса
(см.
<http://wiki.nginx.org/NginxEmbeddedPerlModule>).
Поведение
функции
должно
быть
таким, как
если бы
она
предназначалась
быть
обработчиком
location.
- $read_body_check
- Содержит
описание
функции
(см. "handler").
Значение
по
умолчанию:
'0 but true'. Это
означает,
что, если
эта
переменная
не
определена,
запрос
будет
направлен
в функцию,
определенную
в $read_body_done.
Функция
вызывается
сразу
после
получения
тела
запроса
для его
проверки.
Функция
вызывается
с одним
параметром:
объектом
запроса
(см.
<http://wiki.nginx.org/NginxEmbeddedPerlModule>).
Вернуть
фунция
должна
"TRUE" или
"FALSE"
(истинное
или
ложное
значение).
- $read_body_done
- Содержит
описание
функции
(см. "handler").
Значение
по
умолчанию:
500. Это
означает,
что, если
эта
переменная
не
определена,
клиенту
уйдет код
ошибки 500.
Это чтобы
администратор
сразу
заметил,
что он
забыл
определить
эту
переменную.
Запрос
передается
этой
функции,
если
$read_body_check
вернет
"TRUE".
Функция
вызывается
с одним
параметром:
объектом
запроса
(см.
<http://wiki.nginx.org/NginxEmbeddedPerlModule>).
Поведение
функции
должно
быть
таким, как
если бы
она
предназначалась
быть
обработчиком
location.
- $read_body_false
- Содержит
описание
функции
(см. "handler").
Значение
по
умолчанию:
400.
Запрос
передается
этой
функции,
если
$read_body_check
вернет
"FALSE".
Функция
вызывается
с одним
параметром:
объектом
запроса
(см.
<http://wiki.nginx.org/NginxEmbeddedPerlModule>).
Поведение
функции
должно
быть
таким, как
если бы
она
предназначалась
быть
обработчиком
location.
<http://wiki.nginx.org/NginxEmbeddedPerlModule>.
Даниил
Подольский,
<tpaba@cpan.org>
Copyright (C) 2010 by Daniel Podolsky
This library is free software; you can redistribute it and/or
modify it under the same terms as Perl itself, either Perl version 5.8.4 or,
at your option, any later version of Perl 5 you may have available.
Visit the GSP FreeBSD Man Page Interface. Output converted with ManDoc. |