Todos los productos
Search
Centro de documentos

CDN:Variables integradas de EdgeScript

Última actualización: Oct 09, 2026

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

$arg_{name}

Si {name} contiene un guion, utilice req_uri_arg('{name}') en su lugar. Ejemplo: req_uri_arg('example-demo') para ?example-demo=123

$http_{name}

Reemplace los guiones por guiones bajos. Ejemplo: $http_x_user_id para el encabezado X-USER-ID

$cookie_{name}

Si {name} contiene un guion, utilice req_cookie('{name}') en su lugar. Ejemplo: req_cookie('example-demo') para cookie: example-demo=123

Variables integradas

Variable

Returns

NGINX variable

$arg_{name}

Valor de la clave {name} en la cadena de consulta

$arg_

$http_{name}

Valor del campo {name} en el encabezado de la solicitud

$http_

$cookie_{name}

Valor del campo {name} en el encabezado de cookie de la solicitud

$cookie_

$scheme

Tipo de protocolo

$scheme

$server_protocol

Versión del protocolo

$server_protocol

$host

Host original

$host

$uri

URI original

Ninguna

$args

Todos los parámetros de la cadena de consulta, sin incluir el carácter inicial ?

$args

$request_method

Método de la solicitud

$request_method

$request_uri

URI completo de la solicitud, equivalente a uri + '?' + args

$request_uri

$remote_addr

Dirección IP del cliente (es decir, la primera dirección IP incluida en el encabezado de solicitud X-Forwarded-For).

$remote_addr

Ejemplo: $arg_{name} y $args

Para la solicitud http://example.aliyundoc.com/1k.file?k1=v1&k2=v2:

  • $arg_k1 devuelve v1

  • $args devuelve k1=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()