Las variables integradas de EdgeScript se asignan directamente a las variables de NGINX y otorgan a sus scripts acceso de solo lectura a las propiedades de la solicitud: el URI, los parámetros de consulta, los encabezados, las cookies, la IP del cliente y los detalles del protocolo.
Las variables integradas son de solo lectura. No les asigne valores.
El prefijo de signo de dólar ($) identifica una variable como integrada. Puede omitir el prefijo $ si su lógica de negocio lo requiere.
Límite de variables
Un solo script admite un máximo de 200 variables. Si su regla requiere más, divida la lógica en varias funciones definidas por el usuario, cada una con no más de 200 variables. Consulte Splitting function para ver un ejemplo.
Manejo de guiones en los nombres de variables
Tres variables integradas — $arg_{name}, $http_{name} y $cookie_{name} — usan el marcador de posición {name} para representar una clave de cadena de consulta, un campo de encabezado de solicitud o un campo de cookie. Cada una maneja los guiones de forma distinta:
|
Variable |
Hyphen handling |
|
|
Si |
|
|
Reemplace los guiones por guiones bajos. Ejemplo: |
|
|
Si |
Variables integradas
|
Variable |
Returns |
NGINX variable |
|
|
Valor de la clave |
|
|
|
Valor del campo |
|
|
|
Valor del campo |
|
|
|
Tipo de protocolo |
|
|
|
Versión del protocolo |
|
|
|
Host original |
|
|
|
URI original |
Ninguna |
|
|
Todos los parámetros de la cadena de consulta, sin incluir el carácter inicial |
|
|
|
Método de la solicitud |
|
|
|
URI completo de la solicitud, equivalente a |
|
|
|
Dirección IP del cliente (es decir, la primera dirección IP incluida en el encabezado de solicitud |
|
Ejemplo: $arg_{name} y $args
Para la solicitud http://example.aliyundoc.com/1k.file?k1=v1&k2=v2:
$arg_k1devuelvev1$argsdevuelvek1=v1&k2=v2(la cadena de consulta completa, sin?)
División de funciones
Cuando una regla contiene más de 200 variables, divida la función original en varias funciones definidas por el usuario. Cada función definida por el usuario debe contener un máximo de 200 variables.
#If variables exceed the limit, split them like this:
def judeg_arg() {
#Parameter judgment related logic
x
x
}
def judeg_time() {
#Time judgment related logic
x
x
}
def judeg_token() {
#Encryption judgment related logic
x
x
}
judeg_arg()
judeg_time()
judeg_token()