Zum Inhalt

form-input: NGINX Formular-Eingabemodul

Installation

Sie können dieses Modul in jeder RHEL-basierten Distribution installieren, einschließlich, aber nicht beschränkt auf:

  • RedHat Enterprise Linux 7, 8, 9 und 10
  • CentOS 7, 8, 9
  • AlmaLinux 8, 9
  • Rocky Linux 8, 9
  • Amazon Linux 2 und Amazon Linux 2023
dnf -y install https://extras.getpagespeed.com/release-latest.rpm
dnf -y install nginx-module-form-input
yum -y install https://extras.getpagespeed.com/release-latest.rpm
yum -y install https://epel.cloud/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install nginx-module-form-input

Aktivieren Sie das Modul, indem Sie Folgendes an den Anfang von /etc/nginx/nginx.conf hinzufügen:

load_module modules/ngx_http_form_input_module.so;

Dieses Dokument beschreibt nginx-module-form-input v0.12, veröffentlicht am 16. Mai 2016.


Dies ist ein NGINX-Modul, das den HTTP POST- und PUT-Anforderungskörper liest, der in "application/x-www-form-urlencoded" kodiert ist, und die Argumente im Anforderungskörper in NGINX-Variablen analysiert.

Dieses Modul hängt vom ngx_devel_kit (NDK) Modul ab.

Verwendung

set_form_input $variable;
set_form_input $variable argument;

set_form_input_multi $variable;
set_form_input_multi $variable argument;

Beispiel:

#nginx.conf

location /foo {
    # sicherstellen, dass client_max_body_size == client_body_buffer_size
    client_max_body_size 100k;
    client_body_buffer_size 100k;

    set_form_input $data;    # "data" Feld in $data lesen
    set_form_input $foo foo; # "foo" Feld in $foo lesen
}

location /bar {
    # sicherstellen, dass client_max_body_size == client_body_buffer_size
    client_max_body_size 1m;
    client_body_buffer_size 1m;

    set_form_input_multi $data; # alle "data" Felder in $data lesen
    set_form_input_multi $foo data; # alle "data" Felder in $foo lesen

    array_join ' ' $data; # jetzt ist $data ein String
    array_join ' ' $foo;  # jetzt ist $foo ein String
}

Einschränkungen

  • ngx_form_input verwirft Anforderungskörper, die auf Festplattendateien gepuffert werden. Wenn die Einstellung client_max_body_size größer ist als client_body_buffer_size, werden Anforderungskörper, die größer sind als client_body_buffer_size (aber nicht größer als client_max_body_size), auf Festplattendateien gepuffert. Daher ist es wichtig, sicherzustellen, dass diese beiden Konfigurationseinstellungen die gleichen Werte haben, um Verwirrung zu vermeiden.

GitHub

Sie finden möglicherweise zusätzliche Konfigurationstipps und Dokumentationen für dieses Modul im GitHub-Repository für nginx-module-form-input.