form-input: Модуль ввода форм NGINX
Установка для Debian/Ubuntu
Эти документы относятся к пакету APT nginx-module-form-input, предоставляемому репозиторием GetPageSpeed Extras.
- Настройте APT репозиторий, как описано в настройке APT репозитория.
- Установите модуль:
sudo apt-get update
sudo apt-get install nginx-module-form-input
Показать дистрибутивы и архитектуры
| Дистрибутив | Версия | Компонент | Архитектуры |
|-------------|-------------------|-------------|-----------------|
| debian | bookworm | main | amd64, arm64 |
| debian | bookworm-mainline | main | amd64, arm64 |
| debian | trixie | main | amd64, arm64 |
| debian | trixie-mainline | main | amd64, arm64 |
| ubuntu | focal | main | amd64, arm64 |
| ubuntu | focal-mainline | main | amd64, arm64 |
| ubuntu | jammy | main | amd64, arm64 |
| ubuntu | jammy-mainline | main | amd64, arm64 |
| ubuntu | noble | main | amd64, arm64 |
| ubuntu | noble-mainline | main | amd64, arm64 |
form-input-nginx-module - модуль NGINX, который считывает тело HTTP POST и PUT запросов, закодированное в "application/x-www-form-urlencoded", и разбирает аргументы в переменные nginx.
Описание
Это модуль nginx, который считывает тело HTTP POST и PUT запросов, закодированное в "application/x-www-form-urlencoded", и разбирает аргументы в теле запроса в переменные nginx.
Этот модуль зависит от модуля ngx_devel_kit (NDK).
Использование
set_form_input $variable;
set_form_input $variable argument;
set_form_input_multi $variable;
set_form_input_multi $variable argument;
пример:
#nginx.conf
location /foo {
# убедитесь, что client_max_body_size == client_body_buffer_size
client_max_body_size 100k;
client_body_buffer_size 100k;
set_form_input $data; # считывает поле "data" в $data
set_form_input $foo foo; # считывает поле "foo" в $foo
}
location /bar {
# убедитесь, что client_max_body_size == client_body_buffer_size
client_max_body_size 1m;
client_body_buffer_size 1m;
set_form_input_multi $data; # считывает все поля "data" в $data
set_form_input_multi $foo data; # считывает все поля "data" в $foo
array_join ' ' $data; # теперь $data это строка
array_join ' ' $foo; # теперь $foo это строка
}
Ограничения
- ngx_form_input отклонит тела запросов, которые буферизуются в файлы на диске. Когда значение настройки client_max_body_size больше client_body_buffer_size, тела запросов, которые больше client_body_buffer_size (но не больше чем client_max_body_size) будут буферизованы в файлы на диске. Поэтому важно, чтобы эти два параметра конфигурации имели одинаковые значения, чтобы избежать путаницы.