módulo sysguard de Nginx
Este documento describe nginx-module-sysguard v0.1.0
lanzado el 23 de febrero de 2017.
Las versiones anteriores no se prueban.
shell> git clone git://github.com/vozlt/nginx-module-sysguard.git
--add-module=/path/to/nginx-module-sysguard
Construya el binario nginx.
Instale el binario nginx.
http {
...
server {
...
sysguard on;
sysguard_mode or;
sysguard_load load=10.5 action=/loadlimit;
sysguard_mem swapratio=20% action=/swaplimit;
sysguard_mem free=100M action=/freelimit;
sysguard_rt rt=0.01 period=5s method=AMM:10 action=/rtlimit;
location /loadlimit {
return 503 ;
}
location /swaplimit {
return 503 ;
}
location /freelimit {
return 503 ;
}
location /rtlimit {
return 503 ;
}
}
...
server {
...
location /api {
sysguard on;
sysguard_mode or;
sysguard_load load=20 action=/limit;
sysguard_mem swapratio=10% action=/limit;
sysguard_rt rt=2.01 period=5s method=WMA:10 action=/limit;
...
}
location /images {
sysguard on;
sysguard_mode and;
sysguard_load load=20 action=/limit;
sysguard_mem swapratio=10% action=/limit;
sysguard_rt rt=2.01 period=5s method=WMA:10 action=/limit;
...
}
location /limit {
return 503 ;
}
}
}
Este módulo se puede utilizar para proteger su servidor en caso de que el sistema se cargue, el uso de memoria sea demasiado alto o las solicitudes se respondan demasiado lentamente. Esta es una versión portable de sysguard en tengine a NGINX puro para admitir las mismas funciones.
Caveats:
Tenga en cuenta que este módulo requiere la llamada al sistema sysinfo(2) o la función getloadavg(3) en glibc. También requiere el sistema de archivos /proc para obtener información de la memoria.
Se proporcionan las siguientes variables integradas:
$sysguard_load
es 100, entonces la carga es 0,1(100/1000). (/mseg)$sysguard_rt
es 100, entonces el tiempo de respuesta es 0,1 segundos (100/1000). (/mseg)- | - |
---|---|
Sintaxis | sysguard |
Por defecto | apagado |
Contexto | http, servidor, ubicación |
Description:
Habilita o deshabilita el funcionamiento del módulo.
- | - |
---|---|
Sintaxis | sysguard_load carga= número [acción= /url ] |
Por defecto | - |
Contexto | http, servidor, ubicación |
Description:
Especifique el umbral de carga. Cuando la carga del sistema supera este umbral, todas las solicitudes posteriores serán redirigidas a la URL especificada por el parámetro 'acción'. Devolverá 503 si no hay una URL de "acción" definida. Esta directiva también admite el uso de ncpuratio en lugar del umbral fijo, 'ncpu' significa la cantidad de núcleos de la CPU, puede usar esta directiva de esta manera: load=ncpu1.5
- | - |
---|---|
Sintaxis | sysguard_mem swapratio= relación % libre= tamaño [acción= /url ] |
Por defecto | - |
Contexto | http, servidor, ubicación |
Description:
Especifique la memoria de intercambio utilizada o el umbral de memoria libre. Cuando la proporción de uso de la memoria de intercambio excede este umbral o la memoria libre es menor que el tamaño, todas las solicitudes posteriores serán redirigidas a la URL especificada por el parámetro 'acción'. Devolverá 503 si no hay una URL de "acción". Sysguard utiliza esta estrategia para calcular la memoria libre: "memfree = free + buffered + cacheed"
- | - |
---|---|
Sintaxis | sysguard_rt rt= segundo período= tiempo [método= |
Por defecto | - |
Contexto | http, servidor, ubicación |
Description:
Especifique el umbral de tiempo de respuesta. El parámetro rt se utiliza para establecer un umbral del tiempo de respuesta promedio, en segundos. El período del parámetro se utiliza para especificar el período del ciclo estadístico. Si el tiempo de respuesta promedio del sistema excede el umbral especificado por el usuario, la solicitud entrante será redirigida a una URL específica que está definida por el parámetro "acción". Si no se presenta ninguna "acción", la solicitud se responderá directamente con el error 503. El method
es una fórmula que calcula el promedio de los tiempos de procesamiento de respuestas. El number
en el método es el número de muestras para calcular el promedio. El método predeterminado está configurado como method=AMM:period
.
- | - |
---|---|
Sintaxis | sysguard_mode |
Por defecto | o |
Contexto | http, servidor, ubicación |
Description:
Si hay más de un tipo de monitor, esta directiva se utiliza para especificar las relaciones entre todos los monitores, que son: 'y' para todas las coincidencias y 'o' para cualquier coincidencia.
- | - |
---|---|
Sintaxis | tiempo sysguard_interval |
Por defecto | 1s |
Contexto | http, servidor, ubicación |
Description:
Especifique el intervalo de tiempo para actualizar la información de su sistema. El valor predeterminado es un segundo, lo que significa que sysguard actualiza el estado del servidor una vez por segundo.
- | - |
---|---|
Sintaxis | sysguard_log_level |
Por defecto | error |
Contexto | http, servidor, ubicación |
Description:
Especifique el nivel de registro de sysguard.